diff options
author | Humble Devassy Chirammal <hchiramm@redhat.com> | 2015-03-20 18:57:52 +0530 |
---|---|---|
committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2015-03-30 05:31:34 -0700 |
commit | 299f6ce2b17216a6c09d5345139b9a78f7505b24 (patch) | |
tree | 9be7929ddc9618a975d4ed3c341957f25d926150 /libglusterfs | |
parent | b247ff4b297481148ab2fe4c7b832aac85f6ad72 (diff) |
libgfapi: revamp glfs_new function
Current glfs_new() function is not flexible enough to error out
and destroy the struct members or objects initialized just before the
error path/condition. This make the structs or objects to continue or
left out with partially recorded data in fs and ctx structs and cause
crashes/issues later in the code path. This patch avoid the issue.
Change-Id: Ie4514b82b24723a46681cc7832a08870afc0cb28
BUG: 1202492
Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com>
Reviewed-on: http://review.gluster.org/9903
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Poornima G <pgurusid@redhat.com>
Reviewed-by: soumya k <skoduri@redhat.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/mem-pool.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libglusterfs/src/mem-pool.h b/libglusterfs/src/mem-pool.h index 88ec9705604..2bbb45ae8a7 100644 --- a/libglusterfs/src/mem-pool.h +++ b/libglusterfs/src/mem-pool.h @@ -111,11 +111,13 @@ void* __gf_default_realloc (void *oldptr, size_t size) #define CALLOC(cnt,size) __gf_default_calloc(cnt,size) #define REALLOC(ptr,size) __gf_default_realloc(ptr,size) -#define FREE(ptr) \ - if (ptr != NULL) { \ - free ((void *)ptr); \ - ptr = (void *)0xeeeeeeee; \ - } +#define FREE(ptr) \ + do { \ + if (ptr != NULL) { \ + free ((void *)ptr); \ + ptr = (void *)0xeeeeeeee; \ + } \ + } while (0) #define GF_CALLOC(nmemb, size, type) __gf_calloc (nmemb, size, type, #type) |