summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2003-04-07 18:03:02 +0000
committerSimo Sorce <idra@samba.org>2003-04-07 18:03:02 +0000
commit3b89c0656c800177cbb086041978ab65450e5d5a (patch)
treea5f0d74969d3ebf88165fa8da23e6f6e7791aec4
parent31e21b67d998eed46c55132cc6067db6163d30c1 (diff)
downloadsamba-3b89c0656c800177cbb086041978ab65450e5d5a.tar.gz
samba-3b89c0656c800177cbb086041978ab65450e5d5a.tar.bz2
samba-3b89c0656c800177cbb086041978ab65450e5d5a.zip
fix wrong string handling
thanks to Stefan (metzte) Metzmacher (This used to be commit 99c2e11ccfe04867e84b467b0e82de8415c1dcee)
-rw-r--r--source3/modules/vfs_recycle.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source3/modules/vfs_recycle.c b/source3/modules/vfs_recycle.c
index a669d864c6..100db69cb6 100644
--- a/source3/modules/vfs_recycle.c
+++ b/source3/modules/vfs_recycle.c
@@ -552,9 +552,11 @@ static int recycle_unlink(connection_struct *conn, const char *file_name)
goto done;
}
- temp_name = (char *)strdup(recbin->repository);
+ temp_name = (char *)malloc(PATH_MAX);
ALLOC_CHECK(temp_name, done);
-
+ safe_strcpy(temp_name, recbin->repository, PATH_MAX - 1);
+ *temp_name = '\0';
+
/* see if we need to recreate the original directory structure in the recycle bin */
if (recbin->keep_dir_tree == True) {
safe_strcat(temp_name, "/", PATH_MAX - 1);
@@ -573,7 +575,6 @@ static int recycle_unlink(connection_struct *conn, const char *file_name)
}
}
- final_name = NULL;
asprintf(&final_name, "%s/%s", temp_name, base);
ALLOC_CHECK(final_name, done);
DEBUG(10, ("recycle.bin: recycled file name: %s\n", temp_name)); /* new filename with path */