diff options
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/call-stub.c | 6 | ||||
-rw-r--r-- | libglusterfs/src/gf-dirent.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index d58a2c7f963..0fd0b3d5a47 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -1992,6 +1992,12 @@ fop_readdir_cbk_stub (call_frame_t *frame, stub->args.readdir_cbk.op_errno = op_errno; INIT_LIST_HEAD (&stub->args.readdir_cbk.entries.list); + /* This check must come after the init of head above + * so we're sure the list is empty for list_empty. + */ + if (!entries) + goto out; + if (op_ret > 0) { list_for_each_entry (entry, &entries->list, list) { stub_entry = gf_dirent_for_name (entry->d_name); diff --git a/libglusterfs/src/gf-dirent.c b/libglusterfs/src/gf-dirent.c index 2023c19836f..b321dfc10e0 100644 --- a/libglusterfs/src/gf-dirent.c +++ b/libglusterfs/src/gf-dirent.c @@ -76,6 +76,12 @@ gf_dirent_free (gf_dirent_t *entries) gf_dirent_t *entry = NULL; gf_dirent_t *tmp = NULL; + if (!entries) + return; + + if (list_empty (&entries->list)) + return; + list_for_each_entry_safe (entry, tmp, &entries->list, list) { list_del (&entry->list); FREE (entry); |