From: ticktock35 Date: Thu, 12 Feb 2009 13:27:50 +0000 (+0000) Subject: Thanks to X-Git-Url: https://git.librecmc.org/?p=oweals%2Fopkg-lede.git;a=commitdiff_plain;h=203ec8ddc7f466367c61bc9005c616685d3e74b5;hp=f5afe41a675508672a51d90b84d61a124cd8939d 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 --- 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); /*