summaryrefslogtreecommitdiff
path: root/source3/smbd/filename.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/filename.c')
-rw-r--r--source3/smbd/filename.c6
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);