tools: fix NULL_AFTER_DEREF in image-host.c
authorAnton Moryakov <ant.v.moryakov@gmail.com>
Thu, 30 Jan 2025 13:42:43 +0000 (16:42 +0300)
committerTom Rini <trini@konsulko.com>
Tue, 11 Feb 2025 14:17:22 +0000 (08:17 -0600)
commit25c03648e9faf334d5f97ab8a37b3b199a60fcfb
tree3b0ec04ce2f88d2305a82722cd3e4cc0dfb67e45
parenta9fdc7abf3d3ad7bafb53f88264c391e7789602c
tools: fix NULL_AFTER_DEREF in image-host.c

Report of the static analyzer:
1. NULL_AFTER_DEREF Pointer 'str', which is dereferenced at
   image-host.c:688 by calling function 'strdup', is compared to a NULL
   value at image-host.c:691.
2. NULL_AFTER_DEREF Pointer 'list', which is dereferenced at
   image-host.c:689, is compared to a NULL value at image-host.c:691.

Corrections explained:
1. Checking for NULL before using pointers: The if (!list || !str) check
   is now performed before calling strdup and realloc, which prevents
   null pointer dereferences.
2. Checking the result of strdup: strdup can return NULL if memory
   allocation fails. This also needs to be checked.
3. Checking the result of realloc: If realloc returns NULL, then memory
   has not been allocated and dup must be freed to avoid memory leaks.

Triggers found by static analyzer Svace.

Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
tools/image-host.c