[git commit master] tar: fix problem handling tarballs with chksums prepended by spaces

Denys Vlasenko vda.linux at googlemail.com
Sun Jan 3 22:41:11 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=d6459685c1a93785d0bdf94e16834a6d4c54842f
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/libunarchive/get_header_tar.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c
index b8d7648..1f79927 100644
--- a/archival/libunarchive/get_header_tar.c
+++ b/archival/libunarchive/get_header_tar.c
@@ -274,7 +274,8 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle)
 			bb_error_msg_and_die("invalid tar header checksum");
 		}
 	}
-	sum = xstrtoul(tar.chksum, 8);
+	/* don't use xstrtoul, tar.chksum may have leading spaces */
+	sum = strtoul(tar.chksum, NULL, 8);
 	if (sum_u != sum IF_FEATURE_TAR_OLDSUN_COMPATIBILITY(&& sum_s != sum)) {
 		bb_error_msg_and_die("invalid tar header checksum");
 	}
-- 
1.6.3.3



More information about the busybox-cvs mailing list