diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2003-11-08 15:32:53 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2003-11-08 15:32:53 (GMT) |
commit | 0497e80b5017f0292a3232cfec4e268f9776d137 (patch) | |
tree | adf245ba8f035a20cb91e688a2529e439674634c /src/H5MM.c | |
parent | dd969f1eadfd2cd500f3f44415b85cfea7216794 (diff) | |
download | hdf5-0497e80b5017f0292a3232cfec4e268f9776d137.zip hdf5-0497e80b5017f0292a3232cfec4e268f9776d137.tar.gz hdf5-0497e80b5017f0292a3232cfec4e268f9776d137.tar.bz2 |
[svn-r7829] Purpose:
Bug fix & code cleanup
Description:
Allowing the library to call malloc with a size of 0 bytes causes problems
for some users, so we check for allocations of 0 bytes and disallow them now.
Cleaned up some code which could call malloc with 0 size.
Changed some code calling HDmalloc directly to call H5MM_malloc(), which
allows us to check for 0 sized allocations.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Diffstat (limited to 'src/H5MM.c')
-rw-r--r-- | src/H5MM.c | 67 |
1 files changed, 67 insertions, 0 deletions
@@ -33,6 +33,73 @@ static int interface_initialize_g = 0; #define INTERFACE_INIT NULL +#ifndef NDEBUG + +/*------------------------------------------------------------------------- + * Function: H5MM_malloc + * + * Purpose: Just like the POSIX version of malloc(3). This routine + * specifically checks for allocations of 0 bytes and fails + * in that case. This routine is not called when NDEBUG is + * defined. + * + * Return: Success: Ptr to new memory + * + * Failure: NULL + * + * Programmer: Quincey Koziol + * koziol@ncsa.uiuc.edu + * Nov 8 2003 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +void * +H5MM_malloc(size_t size) +{ + /* Use FUNC_ENTER_NOINIT here to avoid performance issues */ + FUNC_ENTER_NOINIT(H5MM_malloc); + + assert(size); + + FUNC_LEAVE_NOAPI(HDmalloc(size)); +} /* end H5MM_malloc() */ + + +/*------------------------------------------------------------------------- + * Function: H5MM_calloc + * + * Purpose: Similar to the POSIX version of calloc(3), except this routine + * just takes a 'size' parameter. This routine + * specifically checks for allocations of 0 bytes and fails + * in that case. This routine is not called when NDEBUG is + * defined. + * + * Return: Success: Ptr to new memory + * + * Failure: NULL + * + * Programmer: Quincey Koziol + * koziol@ncsa.uiuc.edu + * Nov 8 2003 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +void * +H5MM_calloc(size_t size) +{ + /* Use FUNC_ENTER_NOINIT here to avoid performance issues */ + FUNC_ENTER_NOINIT(H5MM_calloc); + + assert(size); + + FUNC_LEAVE_NOAPI(HDcalloc(1,size)); +} /* end H5MM_calloc() */ +#endif /* NDEBUG */ + /*------------------------------------------------------------------------- * Function: H5MM_realloc |