commit bdf42537c5792f6beb0360517ff378834cfd8a68
Author: robert <[email protected]>
AuthorDate: Sat Jul 30 14:29:05 2022 -0700
Commit: Laslo Hunhold <[email protected]>
CommitDate: Sun Jul 31 11:41:08 2022 +0200
Add reallocarray implementation
reallocarray is nonstandard and glibc declares it only when _GNU_SOURCE
is defined. Without this patch or _GNU_SOURCE (for glibc < 2.29) defined,
you get a segfault from reallocarray being implicitly declared with the
wrong signature.
Signed-off-by: Laslo Hunhold <[email protected]>
diff --git a/gen/util.c b/gen/util.c
index d234ddd..c97a1ea 100644
--- a/gen/util.c
+++ b/gen/util.c
@@ -31,6 +31,16 @@ struct break_test_payload
size_t *testlen;
};
+static void *
+reallocarray(void *p, size_t len, size_t size)
+{
+ if (len > 0 && size > SIZE_MAX/len) {
+ errno = ENOMEM;
+ return NULL;
+ }
+ return realloc(p, len*size);
+}
+
int
hextocp(const char *str, size_t len, uint_least32_t *cp)
{