X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fclient%2Farray_append.c;h=52bcf97f2599b0a9136c122a78ec672ed5e62812;hb=2abda4a2cf9ab42970b5fda00a433c7bcdb0f16e;hp=f4391c7c1e225505c35a1cfe025b6251a9aa50f0;hpb=539f4419afa0966d67b341dc6b30a6174bd3f844;p=plomrogue
diff --git a/src/client/array_append.c b/src/client/array_append.c
index f4391c7..52bcf97 100644
--- a/src/client/array_append.c
+++ b/src/client/array_append.c
@@ -1,10 +1,16 @@
-/* src/client/array_append.c */
+/* src/client/array_append.c
+ *
+ * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
+ * or any later version. For details on its copyright, license, and warranties,
+ * see the file NOTICE in the root directory of the PlomRogue source package.
+ */
#include "array_append.h"
#include /* size_t */
-#include /* uint32_t */
+#include /* uint32_t, UINT32_MAX */
#include /* free() */
#include /* memcpy() */
+#include "../common/rexit.h" /* exit_trouble() */
#include "../common/try_malloc.h" /* try_malloc() */
@@ -12,13 +18,12 @@
extern void array_append(uint32_t old_n, size_t region_size, void * new_region,
void ** ptr_old_array)
{
- char * f_name = "array_append()";
+ exit_trouble(UINT32_MAX<(old_n+1)*region_size, __func__, "too large sizes");
uint32_t old_size = old_n * region_size;
uint32_t new_size = old_size + region_size;
- char * new_array = try_malloc(new_size, f_name);
+ char * new_array = try_malloc(new_size, __func__);
memcpy(new_array, * ptr_old_array, old_size);
memcpy(new_array + (old_n * region_size), new_region, region_size);
free(* ptr_old_array);
- * ptr_old_array = new_array;
+ *ptr_old_array = new_array;
}
-