Skip to content

WriteXKMIndicators: dereference pointer after checking for NULL, not before

Alan Coopersmith requested to merge alanc/libxkbfile:gcc-warnings into master

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

Merge request reports