The branch, v3-3-test has been updated via a9e6c91cd18b8b7b805f4b69f3867ea4bd6bc3ba (commit) from ddaa1bae7567c81fb8e478c439bb970edab2f9c3 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test - Log ----------------------------------------------------------------- commit a9e6c91cd18b8b7b805f4b69f3867ea4bd6bc3ba Author: Jeremy Allison <j...@samba.org> Date: Thu Mar 5 17:17:52 2009 -0800 Fix bug #6161 - smbclient corrupts source path in tar mode This was my fault. I broke the smbclient tar argument processing in creating the string for chdir when removing pstrings. Jeremy. ----------------------------------------------------------------------- Summary of changes: source/client/clitar.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/source/client/clitar.c b/source/client/clitar.c index 5a97446..d6c02df 100644 --- a/source/client/clitar.c +++ b/source/client/clitar.c @@ -1513,6 +1513,7 @@ int process_tar(void) if (strrchr_m(cliplist[i], '\\')) { char *p; + char saved_char; char *saved_dir = talloc_strdup(ctx, client_get_cur_dir()); if (!saved_dir) { @@ -1531,13 +1532,28 @@ int process_tar(void) if (!tarmac) { return 1; } + /* + * Strip off the last \\xxx + * xxx element of tarmac to set + * it as current directory. + */ p = strrchr_m(tarmac, '\\'); if (!p) { return 1; } + saved_char = p[1]; p[1] = '\0'; + client_set_cur_dir(tarmac); + /* + * Restore the character we + * just replaced to + * put the pathname + * back as it was. + */ + p[1] = saved_char; + DEBUG(5, ("process_tar, do_list with tarmac: %s\n", tarmac)); do_list(tarmac,attribute,do_tar, False, True); -- Samba Shared Repository