Age | Commit message (Collapse) | Author |
|
Found by gcc 14.1:
xkmout.c: In function ‘WriteXKMIndicators’:
xkmout.c:728:8: warning: check of ‘**result.xkb.indicators’ for NULL after
already dereferencing it [-Wanalyzer-deref-before-check]
728 | if (xkb->indicators != NULL) {
| ^
[...]
‘WriteXKMIndicators’: events 22-23
|
| 727 | size += xkmPutCARD32(file, xkb->indicators->phys_indicators);
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (22) pointer ‘**result.xkb.indicators’ is dereferenced here
| 728 | if (xkb->indicators != NULL) {
| | ~
| | |
| | (23) pointer ‘**result.xkb.indicators’ is checked for NULL
here but it was already dereferenced at (22)
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/merge_requests/19>
|
|
It has been required since Unix98/SUSv2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/merge_requests/18>
|
|
Document next symbols:
- XkbRF_VarDefsRec
- XkbRF_GetNamesProp()
- XkbRF_SetNamesProp()
- _XKB_RF_NAMES_PROP_ATOM
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
|
|
The function properly frees memory allocated for XkbRF_VarDefsRec by
XkbRF_GetNamesProp().
Based on original contribution by Martin Weber <martin.weber@secunet.com>
Closes: https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/issues/6
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
|
|
Required for pipelines to run after some infrastructure changes, see
https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/540
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
xkbtext.c: In function ‘XkbNKNDetailMaskText’:
xkbtext.c:588:37: warning: comparison of integer expressions of different
signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
588 | for (len = 0, i = 0, bit = 1; i < NUM_NKN; i++, bit <<= 1) {
| ^
xkbtext.c:597:37: warning: comparison of integer expressions of different
signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
597 | for (len = 0, i = 0, bit = 1; i < NUM_NKN; i++, bit <<= 1) {
| ^
xkmread.c: In function ‘XkmSkipPadding’:
xkmread.c:118:19: warning: comparison of integer expressions of different
signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
118 | for (i = 0; i < pad; i++) {
| ^
xkmread.c: In function ‘ReadXkmKeycodes’:
xkmread.c:254:54: warning: comparison of integer expressions of different
signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
254 | for (pAl = xkb->names->key_aliases, i = 0; i < nAl; i++, pAl++)
{
| ^
xkmread.c: In function ‘ReadXkmCompatMap’:
xkmread.c:452:19: warning: comparison of integer expressions of different
signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
452 | for (i = 0; i < num_si; i++, interp++) {
| ^
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
xkbtext.c: In function ‘XkbIndentText’:
xkbtext.c:1529:19: warning: comparison of integer expressions of different
signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
1529 | for (i = 0; i < size; i++) {
| ^
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Handles common case of allocating & copying string to temporary buffer
As a side effect, clears up gcc warning:
xkbtext.c: In function ‘XkbBehaviorText’:
xkbtext.c:1476:19: warning: declaration of ‘tmp’ shadows a previous local [-Wshadow]
1476 | char *tmp;
| ^~~
xkbtext.c:1457:21: note: shadowed declaration is here
1457 | char buf[256], *tmp;
| ^~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Clears up 24 warnings from gcc 12 of the form:
xkbconfig.c: In function ‘DefaultParser’:
xkbconfig.c:469:36: warning: this statement may fall through [-Wimplicit-fallthrough=]
469 | case _XkbCF_RulesFile: if (!str) str = &rtrn->rules_file;
| ^
xkbconfig.c:470:5: note: here
470 | case _XkbCF_Model: if (!str) str = &rtrn->model;
| ^~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Found by gcc 12 analyzer:
cout.c:1106:8: warning: leak of ‘hdrdef’ [CWE-401] [-Wanalyzer-malloc-leak]
1106 | if (!ok) {
| ^
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
xkbconfig.c: In function ‘XkbCFReportError’:
xkbconfig.c:1344:5: warning: format not a string literal,
argument types not checked [-Wformat-nonliteral]
1344 | fprintf(file, msg, line);
| ^~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Found by gcc 12 analyzer:
xkbatom.c: In function ‘XkbChangeAtomDisplay’:
xkbatom.c:218:16: warning: leak of ‘tmp’ [CWE-401] [-Wanalyzer-malloc-leak]
xkbatom.c:220:12: warning: leak of ‘tmp’ [CWE-401] [-Wanalyzer-malloc-leak]
220 | return XInternAtom(dpy, name, onlyIfExists);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixes: 5e5bd09 ("Fix offline operation.")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Handles gcc 12 analyzer warning:
xkbatom.c: In function ‘_XkbInitAtoms’:
xkbatom.c:194:21: warning: dereference of possibly-NULL ‘nodeTable’
[CWE-690] [-Wanalyzer-possible-null-dereference]
194 | nodeTable[None] = (NodePtr) NULL;
| ^
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
nd->string is always the result of a new allocation, so can
never be equal to string.
This resolves a warning from the gcc 12 analyzer, which reported
a memory leak if the impossible condition was ever true:
In file included from xkbatom.c:85:
xkbatom.c: In function ‘_XkbMakeAtom’:
XKBfileInt.h:51:33: warning: leak of ‘<unknown>’ [CWE-401]
[-Wanalyzer-malloc-leak]
[...]
| 158 | if (!table) {
| | ^
| | |
| | (15) following ‘true’ branch (when ‘table’ is NULL)...
| 159 | if (nd->string != string)
| | ~~ ~
| | | |
| | | (17) following ‘false’ branch...
| | (16) ...to here
| 161 | _XkbFree(nd);
| | ^~~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
AC_PROG_LIBTOOL was replaced by LT_INIT in libtool 2 in 2008,
so it's time to rely on it.
Clears autoconf warnings:
configure.ac:35: warning: The macro `AC_PROG_LIBTOOL' is obsolete.
configure.ac:35: You should run autoupdate.
aclocal.m4:3465: AC_PROG_LIBTOOL is expanded from...
configure.ac:35: the top level
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
|
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
There are two ways to separate multiple files in XKB include statements:
'+' will cause the later file to override the first in case of conflict,
while '|' will cause it augment it (this is done by xkbcomp). '!' is
unrelated here.
Currently, if someone tries to use '|' in a rule instead of '+', it
won't have any effect. Since '|' is practically never used, this wasn't
noticed.
Signed-off-by: Ran Benita <ran234@gmail.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Found by using:
codespell --builtin clear,rare,usage,informal,code,names
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
This fixes issue #9.
Bug existed since commit 816a8db326 from sixteen years ago.
Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
|
|
This has been ifdef'd out since at least 2003, time to accept that it won't be
handled. One part was unreachable code anyway, the second part affects
GeomDoodads which are unnecessary and barely used anyway.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
This is the equivalent patch to xserver commit
eaf1f72ed8994b708d94ec2de7b1a99f5c4a39b8:
XkbStringText escapes non-printable characters using octal numbers. Such escape
sequence would be at most 5 characters long ("\0123"), so it reserves 5 bytes
in the buffer. Due to char->unsigned int conversion, it would print much longer
string for negative numbers.
Fixes https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/issues/8
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Reported in https://gitlab.freedesktop.org/xorg/lib/libxkbfile/issues/5
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
V2: Fixing the issue with numbers between 0 -1
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Mihail Konev <k.mvc@ya.ru>
|
|
Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
fall-outs, when they contain space.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Syncs the invocation of configure with the one from the server.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
|
A pointer rather than the buffer was given to sizeof. As the data to be
written is only one or two bytes, a pointer size is at least four bytes, and
the buffer has 32 bytes, this error did not have negative effects.
Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
ActionMessage has an optional flag genKeyEvent. This change makes sure this
flag is printed when it is set.
Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-By: Ran Benita <ran234@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
The LockMods, ISOLock and LockControls support an "affect" flag to selectively
enable and disable locking and unlocking for these actions. This change adds
output of these flags.
Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-By: Ran Benita <ran234@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
The vmods member of XkbNamesPtr is an array and thus never NULL.
Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Other references to SEEK_SET in this file are made without checking,
since they assume everyone has either reached C89 by now or will use
the fallback #define at the top of the file, so we can stop checking
here as well.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Matches XInternAtom, which it wraps, and quiets a bunch of const warnings
in xkbcomp.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Ran Benita <ran234@gmail.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Ran Benita <ran234@gmail.com>
|
|
Some compilers can perform mind-twistingly evil optimizations
if you check for NULL after using it, others just let you segv.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Ran Benita <ran234@gmail.com>
|
|
Xserver has its own copy of this code now, so we don't need to keep
an unused copy in libxkbfile too.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Ran Benita <ran234@gmail.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|