Cleanup: remove redundant, invalid info from headers
[blender.git] / intern / guardedalloc / MEM_guardedalloc.h
index f6048a04cf37d1cfa5cef4dfea35f4ae5abcda4b..d23bab63d671b920930ea2c855dc0206daaf9bea 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Brecht Van Lommel
- *                 Campbell Barton
- *
- * ***** END GPL LICENSE BLOCK *****
  */
 
 /**
  *
  * There are currently no known issues with MEM. Note that there is a
  * second intern/ module with MEM_ prefix, for use in c++.
- * 
+ *
  * \subsection memdependencies Dependencies
  * - stdlib
  * - stdio
- * 
+ *
  * \subsection memdocs API Documentation
  * See \ref MEM_guardedalloc.h
  */
@@ -113,12 +104,26 @@ extern "C" {
         * pointer to it is stored ! */
        extern void *(*MEM_callocN)(size_t len, const char *str) /* ATTR_MALLOC */ ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
 
+       /**
+        * Allocate a block of memory of size (len * size), with tag name
+        * str, aborting in case of integer overflows to prevent vulnerabilities.
+        * The memory is cleared. The name must be static, because only a
+        * pointer to it is stored ! */
+       extern void *(*MEM_calloc_arrayN)(size_t len, size_t size, const char *str) /* ATTR_MALLOC */ ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1,2) ATTR_NONNULL(3);
+
        /**
         * Allocate a block of memory of size len, with tag name str. The
         * name must be a static, because only a pointer to it is stored !
         * */
        extern void *(*MEM_mallocN)(size_t len, const char *str) /* ATTR_MALLOC */ ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
 
+       /**
+        * Allocate a block of memory of size (len * size), with tag name str,
+        * aborting in case of integer overflow to prevent vulnerabilities. The
+        * name must be a static, because only a pointer to it is stored !
+        * */
+       extern void *(*MEM_malloc_arrayN)(size_t len, size_t size, const char *str) /* ATTR_MALLOC */ ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1,2) ATTR_NONNULL(3);
+
        /**
         * Allocate an aligned block of memory of size len, with tag name str. The
         * name must be a static, because only a pointer to it is stored !
@@ -132,11 +137,11 @@ extern "C" {
        extern void *(*MEM_mapallocN)(size_t len, const char *str) /* ATTR_MALLOC */ ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
 
        /** Print a list of the names and sizes of all allocated memory
-        * blocks. as a python dict for easy investigation */ 
+        * blocks. as a python dict for easy investigation */
        extern void (*MEM_printmemlist_pydict)(void);
 
        /** Print a list of the names and sizes of all allocated memory
-        * blocks. */ 
+        * blocks. */
        extern void (*MEM_printmemlist)(void);
 
        /** calls the function on all allocated memory blocks. */
@@ -144,20 +149,20 @@ extern "C" {
 
        /** Print statistics about memory usage */
        extern void (*MEM_printmemlist_stats)(void);
-       
+
        /** Set the callback function for error output. */
        extern void (*MEM_set_error_callback)(void (*func)(const char *));
 
        /**
         * Are the start/end block markers still correct ?
         *
-        * @retval 0 for correct memory, 1 for corrupted memory. */
-       extern bool (*MEM_check_memory_integrity)(void);
+        * @retval true for correct memory, false for corrupted memory. */
+       extern bool (*MEM_consistency_check)(void);
 
        /** Set thread locking functions for safe memory allocation from multiple
         * threads, pass NULL pointers to disable thread locking again. */
        extern void (*MEM_set_lock_callback)(void (*lock)(void), void (*unlock)(void));
-       
+
        /** Attempt to enforce OSX (or other OS's) to have malloc and stack nonzero */
        extern void (*MEM_set_memory_debug)(void);