Commit Diff


commit - a5a09e44b2ca3fa86ecf401f3907dff8c2012d98
commit + 95210bb3961727e034b99912a65700f6ace49753
blob - f389aa84b496a5b6a4ff7871c9cd6d013077a618
blob + 81bc2efba34f8142a4f82c1ce9f273fa6692a15c
--- mime.c
+++ 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;