From 203ec8ddc7f466367c61bc9005c616685d3e74b5 Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Thu, 12 Feb 2009 13:27:50 +0000 Subject: [PATCH] Thanks to Frans Meulenbroeks http://groups.google.com/group/opkg-devel/browse_thread/thread/23c3557277de0f2e If a file name in a tar archive is exactly 100 bytes long the name field is completely filled and there is no terminating null byte; so extraction of the file will yield a name that is extended with the mode (e.g. 000644). The attached patch cures it although there might be better solutions. The problem is also in busybox tar and reported there too. Frans. git-svn-id: http://opkg.googlecode.com/svn/trunk@201 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- libbb/unarchive.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libbb/unarchive.c b/libbb/unarchive.c index bb70ccb..24877e7 100644 --- a/libbb/unarchive.c +++ b/libbb/unarchive.c @@ -606,6 +606,10 @@ file_header_t *get_header_tar(FILE *tar_stream) tar_entry->name = concat_path_file(tar.formated.prefix, tar.formated.name); } + if (strlen(tar_entry->name) > 100) { + tar_entry->name[100] = 0; + } + // tar_entry->name = xstrdup(tar.formated.name); /* -- 2.25.1