Browse code

add cli_realloc2()

git-svn: trunk@3063

Tomasz Kojm authored on 2007/05/26 05:16:30
Showing 3 changed files
... ...
@@ -1,3 +1,7 @@
1
+Fri May 25 21:39:53 CEST 2007 (tk)
2
+----------------------------------
3
+  * libclamav/others.[ch]: add cli_realloc2()
4
+
1 5
 Fri May 25 10:33:19 BST 2007 (njh)
2 6
 ----------------------------------
3 7
   * libclamav/blob.c:	Bug 520
... ...
@@ -379,6 +379,27 @@ void *cli_realloc(void *ptr, size_t size)
379 379
     } else return alloc;
380 380
 }
381 381
 
382
+void *cli_realloc2(void *ptr, size_t size)
383
+{
384
+	void *alloc;
385
+
386
+
387
+    if(!size || size > CLI_MAX_ALLOCATION) {
388
+	cli_errmsg("cli_realloc2(): Attempt to allocate %u bytes. Please report to http://bugs.clamav.net\n", size);
389
+	return NULL;
390
+    }
391
+
392
+    alloc = realloc(ptr, size);
393
+
394
+    if(!alloc) {
395
+	cli_errmsg("cli_realloc2(): Can't re-allocate memory to %u bytes.\n", size);
396
+	perror("realloc_problem");
397
+	if(ptr)
398
+	    free(ptr);
399
+	return NULL;
400
+    } else return alloc;
401
+}
402
+
382 403
 char *cli_strdup(const char *s)
383 404
 {
384 405
         char *alloc;
... ...
@@ -173,6 +173,7 @@ void cli_dbgmsg(const char *str, ...);
173 173
 void *cli_malloc(size_t nmemb);
174 174
 void *cli_calloc(size_t nmemb, size_t size);
175 175
 void *cli_realloc(void *ptr, size_t size);
176
+void *cli_realloc2(void *ptr, size_t size);
176 177
 char *cli_strdup(const char *s);
177 178
 int cli_rmdirs(const char *dirname);
178 179
 unsigned char *cli_md5digest(int desc);