diff options
Diffstat (limited to 'source3/smbd/filename.c')
-rw-r--r-- | source3/smbd/filename.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index 2538bc1ea6..ee97388da2 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -829,7 +829,7 @@ static int get_real_filename_full_scan(connection_struct *conn, TALLOC_CTX *mem_ctx, char **found_name) { struct smb_Dir *cur_dir; - const char *dname; + char *dname = NULL; char *unmangled_name = NULL; long curpos; @@ -885,6 +885,7 @@ static int get_real_filename_full_scan(connection_struct *conn, /* Is it dot or dot dot. */ if (ISDOT(dname) || ISDOTDOT(dname)) { + TALLOC_FREE(dname); continue; } @@ -907,10 +908,13 @@ static int get_real_filename_full_scan(connection_struct *conn, TALLOC_FREE(cur_dir); if (!*found_name) { errno = ENOMEM; + TALLOC_FREE(dname); return -1; } + TALLOC_FREE(dname); return 0; } + TALLOC_FREE(dname); } TALLOC_FREE(unmangled_name); |