From 67124b97b3af69af0e2eeb82bb751a909f99b245 Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Mon, 17 Mar 2025 14:54:25 -0400 Subject: Added extra guard clauses to prevent undefined behavior --- src/lib/file.c | 7 +++++-- src/lib/keytab.c | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/file.c b/src/lib/file.c index f170b4e..a6bb035 100644 --- a/src/lib/file.c +++ b/src/lib/file.c @@ -14,8 +14,9 @@ tablist_t *readdb(char *filename) int len = 2; tablist_t *list = calloc(len, sizeof(tablist_t)); list[0].len = len; - FILE *fp = fopen(filename, "rb"); - if (fp == NULL) + FILE *fp; + if (filename == NULL || + (fp = fopen(filename, "rb")) == NULL) return list; int c, i = 0, open = 0; @@ -59,6 +60,8 @@ fail: void writedb(char *filename, tablist_t *list) { FILE *fp = fopen(filename, "wb"); + if (fp == NULL) + return; for (int i = 0; i < list[0].len; ++i) { fputc(0xFB, fp); int *indexes = getkeys(list, i); diff --git a/src/lib/keytab.c b/src/lib/keytab.c index c2842c9..ff32e42 100644 --- a/src/lib/keytab.c +++ b/src/lib/keytab.c @@ -12,6 +12,8 @@ static char **getkv(char *pair); int *getkeys(tablist_t *list, int id) { int len = 2; + if (id >= list[0].len) + return NULL; int *indexes = calloc(len, sizeof(int)); for (int i = 0, j = 0; i < TABLEN; ++i) { if (j >= len) { -- cgit v1.2.3