summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2021-02-19 14:23:57 -0500
committerPeter Jones <pjones@redhat.com>2021-02-19 14:28:10 -0500
commit9bef30f52951572a37cd83057aea676721c52380 (patch)
treec1562675053cb64a4ff047cff11cf4347dd63bce
parent8e34030ba544b4583c87e070d1a1e0e6b9ff5d60 (diff)
downloadefi-boot-shim-9bef30f52951572a37cd83057aea676721c52380.tar.gz
efi-boot-shim-9bef30f52951572a37cd83057aea676721c52380.zip
sbat: Fix two NULL derefs found with "gcc -fanalyzer"
"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 <pjones@redhat.com>
-rw-r--r--sbat.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sbat.c b/sbat.c
index 5bda597b..446bed1a 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;