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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Excerpt https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
- Support for the long-deprecated INCLUDES variable will be removed
altogether in Automake 1.14. The AM_CPPFLAGS variable should be
used instead.
This variable was deprecated in Automake releases prior to 1.10, which is
the current minimum level required to build X.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Does not fix all of them, as some affect the API and thus need more analysis.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
|
|
Our minimum requirement for X11 is currently Unix98. Unix98 provides
strcasecmp in <strings.h>. This commit fixes implicit declarations
of this function on systems that closely adhere to the standard.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
|
|
Performed with: find * -type f | xargs perl -i -p -e 's{[ \t]+$}{}'
git diff -w & git diff -b show no diffs from this change
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
|
|
_XkbDupString() checks for NULL, strdup doesn't. Still, implement in
terms of real strdup and skip the calloc.
|
|
Not really a huge improvement, but we might as well.
|
|
Super special bonus lols edition: _XkbDupString would allocate the new
string with calloc, just to be extra sure.
|
|
|
|
This patch uses dynamically allocated strings instead of the fixed-length
buffers to avoid stack overflows.
https://bugs.freedesktop.org/show_bug.cgi?id=19490
https://bugs.launchpad.net/ubuntu/+source/x11-xkb-utils/+bug/309013
Signed-off-by: Kees Cook <kees.cook@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Rules which match star (*) and option, like one below, should be applied
layout[2] option = symbols
* misc:typo = +typo(base)
X.Org bug 19563 <http://bugs.freedesktop.org/show_bug.cgi?id=19563>
Signed-off-by: Sergey V. Udaltsov <svu@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|