summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-09-12 01:25:35 +0000
committerJeremy Allison <jra@samba.org>2003-09-12 01:25:35 +0000
commita4e5e3f3a5d80673a6b4ee2d9bd4f00a325bb4fb (patch)
tree840ac29a01acc204226099afb96476eed8468f7a
parent150d3d535c808a22536477e9a59b76d1e66609d9 (diff)
downloadsamba-a4e5e3f3a5d80673a6b4ee2d9bd4f00a325bb4fb.tar.gz
samba-a4e5e3f3a5d80673a6b4ee2d9bd4f00a325bb4fb.tar.bz2
samba-a4e5e3f3a5d80673a6b4ee2d9bd4f00a325bb4fb.zip
Fix from Craig Barratt <cbarratt@users.sourceforge.net> to fix restore
with filenames > 100 chars. Jeremy. (This used to be commit aa40a86cbe797cba4e281cb8dc09b2ae67e93dc2)
-rw-r--r--source3/client/clitar.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source3/client/clitar.c b/source3/client/clitar.c
index b01de5b8e7..f38d6fe91a 100644
--- a/source3/client/clitar.c
+++ b/source3/client/clitar.c
@@ -1054,9 +1054,11 @@ static int get_dir(file_info2 finfo)
has the data. We only want the long file name, as the loop in do_tarput
will deal with the rest.
*/
-static char * get_longfilename(file_info2 finfo)
+static char *get_longfilename(file_info2 finfo)
{
- int namesize = strlen(finfo.name) + strlen(cur_dir) + 2;
+ /* finfo.size here is the length of the filename as written by the "/./@LongLink" name
+ * header call. */
+ int namesize = finfo.size + strlen(cur_dir) + 2;
char *longname = malloc(namesize);
int offset = 0, left = finfo.size;
BOOL first = True;