From: David Kalnischkies Date: Wed, 12 Jan 2011 23:27:42 +0000 (+0100) Subject: * apt-inst/contrib/extracttar.cc: X-Git-Tag: 0.8.11~5^2^2^2~30 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/f688d1d3c90091c308ec979eabab511134810be9 * apt-inst/contrib/extracttar.cc: - let apt-utils work with encoded tar headers if uid/gid are large. Thanks to Nobuhiro Hayashi for the patch! (Closes: #330162) --- f688d1d3c90091c308ec979eabab511134810be9 diff --cc apt-pkg/contrib/strutl.cc index 987f4c3a4,daf87c87f..f37045810 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@@ -968,6 -968,24 +968,23 @@@ bool StrToNum(const char *Str,unsigned return true; } /*}}}*/ + // Base256ToNum - Convert a fixed length binary to a number /*{{{*/ + // --------------------------------------------------------------------- + /* This is used in decoding the 256bit encoded fixed length fields in + tar files */ -bool Base256ToNum(const char *Str,unsigned long &Res,unsigned Len) ++bool Base256ToNum(const char *Str,unsigned long &Res,unsigned int Len) + { - int i; + if ((Str[0] & 0x80) == 0) + return false; + else + { + Res = Str[0] & 0x7F; - for(i=1; i &List); bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0); -bool Base256ToNum(const char *Str,unsigned long &Res,unsigned Len); ++bool Base256ToNum(const char *Str,unsigned long &Res,unsigned int Len); bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length); bool TokSplitString(char Tok,char *Input,char **List, unsigned long ListMax); diff --cc debian/changelog index 6028cc8f4,96a2bd15b..3a59ac171 --- a/debian/changelog +++ b/debian/changelog @@@ -1,37 -1,3 +1,40 @@@ +apt (0.8.11+wheezy) unstable; urgency=low + + * apt-pkg/depcache.cc: + - add SetCandidateRelease() to set a candidate version and + the candidates of dependencies if needed to a specified + release (Closes: #572709) + * cmdline/apt-get.cc: + - if --print-uris is used don't setup downloader as we don't need + progress, lock nor the directories it would create otherwise + - show dependencies of essential packages which are going to remove + only if they cause the remove of this essential (Closes: #601961) + - keep not installed garbage packages uninstalled instead of showing + in the autoremove section and installing those (Closes: #604222) + - change pkg/release behavior to use the new SetCandidateRelease + so installing packages from experimental or backports is easier + - really do not show packages in the extra section if they were + requested on the commandline, e.g. with a modifier + * debian/control: + - add Vcs-Browser now that loggerhead works again (Closes: #511168) + * apt-pkg/contrib/fileutl.cc: + - add a RealFileExists method and check that your configuration files + are real files to avoid endless loops if not (Closes: #604401) + * apt-pkg/contrib/weakptr.h: + - include stddefs.h to fix compile error (undefined NULL) with gcc-4.6 + * methods/https.cc: + - fix CURLOPT_SSL_VERIFYHOST by really passing 2 to it if enabled + * deb/dpkgpm.cc: + - fix popen/fclose mismatch reported by cppcheck. Thanks to Petter + Reinholdtsen for report and patch! (Closes: #607803) + * doc/apt.conf.5.xml: + - fix multipl{y,e} spelling error reported by Jakub Wilk (Closes: #607636) ++ * apt-inst/contrib/extracttar.cc: ++ - let apt-utils work with encoded tar headers if uid/gid are large. ++ Thanks to Nobuhiro Hayashi for the patch! (Closes: #330162) + - -- David Kalnischkies Wed, 12 Jan 2011 23:59:38 +0100 ++ -- David Kalnischkies Thu, 13 Jan 2011 00:25:32 +0100 + apt (0.8.10) unstable; urgency=low [ Programs translations ] diff --cc test/integration/deb-bug-330162-encoded-tar-header.deb index 000000000,000000000..f38b1aa70 new file mode 100644 Binary files differ diff --cc test/integration/test-bug-330162-encoded-tar-header index 000000000,000000000..fa01e0379 new file mode 100755 --- /dev/null +++ b/test/integration/test-bug-330162-encoded-tar-header @@@ -1,0 -1,0 +1,11 @@@ ++#!/bin/sh ++set -e ++ ++local TESTDIR=$(readlink -f $(dirname $0)) ++. $TESTDIR/framework ++setupenvironment ++configarchitecture "i386" ++ ++msgtest 'Test apt-ftparchive with encoded tar header package' ++cp $TESTDIR/deb-bug-330162-encoded-tar-header.deb aptarchive/ ++test -z "$(aptftparchive packages aptarchive/ 2>&1 | grep 'E:')" && msgpass || msgfail