diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2024-07-13 15:09:58 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2024-07-13 15:22:16 -0700 |
commit | bf985c68acb1244f51ec91414532a2347fbc1c4c (patch) | |
tree | bb47b758d221b711be5875f9e491ad2e3c61875a | |
parent | b4c6069ecc1a6b03051e06aecba04e828fb0d945 (diff) |
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>
-rw-r--r-- | src/xkmout.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/xkmout.c b/src/xkmout.c index 39655be..399f4cc 100644 --- a/src/xkmout.c +++ b/src/xkmout.c @@ -724,8 +724,8 @@ WriteXKMIndicators(FILE *file, XkbFileInfo *result, XkmInfo *info) dpy = xkb->dpy; size += xkmPutCARD8(file, info->num_leds); size += xkmPutPadding(file, 3); - size += xkmPutCARD32(file, xkb->indicators->phys_indicators); if (xkb->indicators != NULL) { + size += xkmPutCARD32(file, xkb->indicators->phys_indicators); for (i = 0; i < XkbNumIndicators; i++) { XkbIndicatorMapPtr map = &xkb->indicators->maps[i]; @@ -755,6 +755,9 @@ WriteXKMIndicators(FILE *file, XkbFileInfo *result, XkmInfo *info) } } } + else { + size += xkmPutCARD32(file, 0); + } return size; } |