#define SMB_REALLOC(p,s) Realloc((p),(s),True) /* Always frees p on error or s == 0 */
#define SMB_REALLOC_KEEP_OLD_ON_ERROR(p,s) Realloc((p),(s),False) /* Never frees p on error or s == 0 */
#define SMB_REALLOC_ARRAY(p,type,count) (type *)realloc_array((p),sizeof(type),(count),True) /* Always frees p on error or s == 0 */
-#define SMB_REALLOC_ARRAY_KEEP_OLD_ON_ERROR(p,type,count) (type *)realloc_array((p),sizeof(type),(count),False) /* Always frees p on error or s == 0 */
+#define SMB_REALLOC_ARRAY_KEEP_OLD_ON_ERROR(p,type,count) (type *)realloc_array((p),sizeof(type),(count),False) /* Never frees p on error or s == 0 */
#define SMB_CALLOC_ARRAY(type,count) (type *)calloc_array(sizeof(type),(count))
#define SMB_XMALLOC_P(type) (type *)smb_xmalloc_array(sizeof(type),1)
#define SMB_XMALLOC_ARRAY(type,count) (type *)smb_xmalloc_array(sizeof(type),(count))
Type-safe realloc.
****************************************************************************/
-void *realloc_array(void *p, size_t el_size, unsigned int count, BOOL keep_old_on_error)
+void *realloc_array(void *p, size_t el_size, unsigned int count, BOOL free_old_on_error)
{
if (count >= MAX_ALLOC_SIZE/el_size) {
- if (!keep_old_on_error) {
+ if (free_old_on_error) {
SAFE_FREE(p);
}
return NULL;
}
- return Realloc(p, el_size*count, keep_old_on_error);
+ return Realloc(p, el_size*count, free_old_on_error);
}
/****************************************************************************
DEBUG(0,("str_list_copy: Unable to re-allocate memory"));
str_list_free(&list);
return False;
- } else
+ } else {
list = rlist;
+ }
memset (&list[num], 0, ((sizeof(char **)) * (S_LIST_ABS +1)));
}