From 95210bb3961727e034b99912a65700f6ace49753 Mon Sep 17 00:00:00 2001 From: Omar Polo Date: Thu, 21 Jan 2021 16:14:01 +0000 Subject: [PATCH] use recallocarray it also does an overflow check on multiplication, other than being more readable. --- mime.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mime.c b/mime.c index f389aa8..81bc2ef 100644 --- a/mime.c +++ b/mime.c @@ -35,11 +35,15 @@ init_mime(struct mime *mime) void add_mime(struct mime *mime, const char *mt, const char *ext) { + size_t oldcap; + if (mime->len == mime->cap) { + oldcap = mime->cap; mime->cap *= 1.5; - mime->t = realloc(mime->t, mime->cap * sizeof(struct etm)); + mime->t = recallocarray(mime->t, oldcap, mime->cap, + sizeof(struct etm)); if (mime->t == NULL) - fatal("realloc: %s", strerror(errno)); + err(1, "recallocarray"); } mime->t[mime->len].mime = mt;