From 9bef30f52951572a37cd83057aea676721c52380 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 19 Feb 2021 14:23:57 -0500 Subject: [PATCH] sbat: Fix two NULL derefs found with "gcc -fanalyzer" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "gcc -fanalyzer" found two NULL pointer checks we're missing in sbat.c: include/str.h: In function ‘get_sbat_field.part.0’: sbat.c:20:14: error: dereference of NULL ‘offset’ [CWE-476] [-Werror=analyzer-null-dereference] 20 | if (!*offset) and include/str.h: In function ‘parse_sbat’: sbat.c:140:27: error: dereference of NULL ‘current’ [CWE-476] [-Werror=analyzer-null-dereference] 140 | } while (entry && *current != '\0'); Both are simple, and this patch fixes them. Signed-off-by: Peter Jones --- sbat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbat.c b/sbat.c index 5bda597..446bed1 100644 --- a/sbat.c +++ b/sbat.c @@ -17,7 +17,7 @@ get_sbat_field(CHAR8 *current, CHAR8 *end, const CHAR8 **field, char delim) offset = strchrnula(current, delim); *field = current; - if (!*offset) + if (!offset || !*offset) return NULL; *offset = '\0'; @@ -137,7 +137,7 @@ parse_sbat(char *sbat_base, size_t sbat_size, size_t *sbats, struct sbat_entry * n = nsize / sizeof(entry); } entries[i++] = entry; - } while (entry && *current != '\0'); + } while (entry && current && *current != '\0'); *sbats = i; *sbat = entries;