summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-07-13WriteXKMIndicators: dereference pointer after checking for NULL, not beforeHEADmasterAlan Coopersmith
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>
2024-04-22Assume target platforms have strcasecmp nowAlan Coopersmith
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>
2024-03-18Add XkbRF_FreeVarDefs() a destructor for XkbRF_VarDefsRec.Alexander Golubev
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>
2023-11-08Add a meson build systemAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2023-10-08Fix -Wsign-compare warnings in xkbtext.c & xkmread.cAlan Coopersmith
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>
2023-10-08XkbIndentText: Fix -Wsign-compare warningAlan Coopersmith
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>
2023-10-08xkbtext.c: Add tbGetBufferString helper functionAlan Coopersmith
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>
2023-10-08DefaultParser: avoid -Wimplicit-fallthrough warningsAlan Coopersmith
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>
2023-10-08XkbWriteCFile: stop leaking header file ifdef nameAlan Coopersmith
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>
2023-10-08XkbCFReportError: avoid -Wformat-nonliteral warningAlan Coopersmith
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>
2023-10-08XkbChangeAtomDisplay: stop leaking atom nameAlan Coopersmith
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>
2023-10-08_XkbInitAtoms: check for malloc() failureAlan Coopersmith
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>
2023-10-08_XkbMakeAtom: remove check for impossible caseAlan Coopersmith
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>
2023-03-25Set close-on-exec when opening filesAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-08-20Fix check for appending '|' character when applying rulesRan Benita
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>
2022-06-05fix an off-by-one error in copying the name of a virtual modifierBenno Schulenberg
This fixes issue #9. Bug existed since commit 816a8db326 from sixteen years ago. Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
2020-09-02unifdef NOTYETPeter Hutterer
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>
2020-06-19Escape non-printable characters correctlyPeter Hutterer
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>
2019-03-29Convert check for strcasecmp to normal autoconf styleAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2019-03-29Use strndup if available to avoid -Wstringop-overflow warning from gcc 9Alan Coopersmith
Reported in https://gitlab.freedesktop.org/xorg/lib/libxkbfile/issues/5 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2018-03-24correcting mathematical nonsenseMartin Burggraf
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>
2016-01-01Fix mistyped argument of sizeofAndreas Wettstein
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>
2016-01-01Add support for genKeyEvent flagAndreas Wettstein
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>
2016-01-01Add missing support for NoLock and NoUnlock flagsAndreas Wettstein
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>
2014-11-27Remove unnecessary check.Jörg Sonnenberger
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>
2014-11-08Remove check to see if SEEK_SET is defined before using itAlan Coopersmith
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>
2013-10-28Constify atom name argument to XkbInternAtomAlan Coopersmith
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>
2013-10-28Convert sprintf calls to snprintfAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Ran Benita <ran234@gmail.com>
2013-10-28Don't dereference xkb pointer until after checking it for NULLAlan Coopersmith
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>
2013-10-28unifdef -UXKB_IN_SERVERAlan Coopersmith
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>
2013-10-20Convert to X.Org standard indentation styleAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-01-18Replace deprecated Automake INCLUDES variable with AM_CPPFLAGSAlan Coopersmith
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>
2011-11-16Add const attributes to fix gcc -Wwrite-strings warningsAlan Coopersmith
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>
2011-11-11Include strings.h for strcasecmpJeremy Huddleston
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>
2011-09-16Strip trailing whitespaceAlan Coopersmith
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>
2010-10-06Purge cvs tags.Jesse Adkins
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2010-07-08Purge macro NEED_EVENTSFernando Carrijo
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>
2009-10-06Migrate to xorg macros 1.3 & XORG_DEFAULT_OPTIONSAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-05-08Semi-revert 33b839e16fe681ba915658f824ceb1b252084ea4Adam Jackson
_XkbDupString() checks for NULL, strdup doesn't. Still, implement in terms of real strdup and skip the calloc.
2009-05-07Use flockfile if available.Adam Jackson
Not really a huge improvement, but we might as well.
2009-05-07s/_XkbDupString/strdup/Adam Jackson
Super special bonus lols edition: _XkbDupString would allocate the new string with calloc, just to be extra sure.
2009-01-29Janitor: distcheck, compiler warnings, .gitignore.Paulo Cesar Pereira de Andrade
2009-01-15Fix static buffer overflow in "xkbcomp -C :0"Kees Cook
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>
2009-01-15Apply partial matches for option (#19563)Alexey Ten
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>
2006-07-13renamed: .cvsignore -> .gitignoreAlan Coopersmith
2006-04-12Fix offline operation.Daniel Stone
2006-04-10Really fix typos.Daniel Stone
2006-04-10Fix stupid typos. (Shang-Feng Yang)Daniel Stone
2006-04-09Coverity #265: Fix potential NULL dereference.Daniel Stone
2006-04-09Coverity #776, #777: Fix memory leaks.Daniel Stone