From 3621b1c70f532c61ccfee6a65c413ee573ed4900 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Wed, 2 Jul 2014 03:10:21 +0200 Subject: Fix ar and tar code to be LFS-safe This is an ABI break. Closes: #742882 --- apt-inst/contrib/arfile.h | 2 +- apt-inst/contrib/extracttar.cc | 13 ++++++------- apt-inst/contrib/extracttar.h | 4 ++-- apt-inst/deb/debfile.cc | 4 ++-- apt-inst/deb/debfile.h | 4 ++-- apt-inst/dirstream.h | 4 ++-- 6 files changed, 15 insertions(+), 16 deletions(-) (limited to 'apt-inst') diff --git a/apt-inst/contrib/arfile.h b/apt-inst/contrib/arfile.h index 0f62a34a0..5aa38aedc 100644 --- a/apt-inst/contrib/arfile.h +++ b/apt-inst/contrib/arfile.h @@ -61,7 +61,7 @@ struct ARArchive::Member unsigned long long Size; // Location of the data. - unsigned long Start; + unsigned long long Start; Member *Next; Member() : Start(0), Next(0) {}; diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 0ba3f0521..2c86d0d01 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -60,9 +60,8 @@ struct ExtractTar::TarHeader // ExtractTar::ExtractTar - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram) : File(Fd), - MaxInSize(Max), DecompressProg(DecompressionProgram) - +ExtractTar::ExtractTar(FileFd &Fd,unsigned long long Max,string DecompressionProgram) + : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram) { GZPid = -1; Eof = false; @@ -267,7 +266,7 @@ bool ExtractTar::Go(pkgDirStream &Stream) case GNU_LongLink: { - unsigned long Length = Itm.Size; + unsigned long long Length = Itm.Size; unsigned char Block[512]; while (Length > 0) { @@ -286,7 +285,7 @@ bool ExtractTar::Go(pkgDirStream &Stream) case GNU_LongName: { - unsigned long Length = Itm.Size; + unsigned long long Length = Itm.Size; unsigned char Block[512]; while (Length > 0) { @@ -315,11 +314,11 @@ bool ExtractTar::Go(pkgDirStream &Stream) return false; // Copy the file over the FD - unsigned long Size = Itm.Size; + unsigned long long Size = Itm.Size; while (Size != 0) { unsigned char Junk[32*1024]; - unsigned long Read = min(Size,(unsigned long)sizeof(Junk)); + unsigned long Read = min(Size, (unsigned long long)sizeof(Junk)); if (InFd.Read(Junk,((Read+511)/512)*512) == false) return false; diff --git a/apt-inst/contrib/extracttar.h b/apt-inst/contrib/extracttar.h index 4b29df314..472e018f4 100644 --- a/apt-inst/contrib/extracttar.h +++ b/apt-inst/contrib/extracttar.h @@ -39,7 +39,7 @@ class ExtractTar GNU_LongLink = 'K',GNU_LongName = 'L'}; FileFd &File; - unsigned long MaxInSize; + unsigned long long MaxInSize; int GZPid; FileFd InFd; bool Eof; @@ -53,7 +53,7 @@ class ExtractTar bool Go(pkgDirStream &Stream); - ExtractTar(FileFd &Fd,unsigned long Max,std::string DecompressionProgram); + ExtractTar(FileFd &Fd,unsigned long long Max,std::string DecompressionProgram); virtual ~ExtractTar(); }; diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index a63cb6716..4853a13c7 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -203,7 +203,7 @@ bool debDebFile::MemControlExtract::DoItem(Item &Itm,int &Fd) /* Just memcopy the block from the tar extractor and put it in the right place in the pre-allocated memory block. */ bool debDebFile::MemControlExtract::Process(Item &/*Itm*/,const unsigned char *Data, - unsigned long Size,unsigned long Pos) + unsigned long long Size,unsigned long long Pos) { memcpy(Control + Pos, Data,Size); return true; @@ -232,7 +232,7 @@ bool debDebFile::MemControlExtract::Read(debDebFile &Deb) // --------------------------------------------------------------------- /* The given memory block is loaded into the parser and parsed as a control record. */ -bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long Size) +bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long long Size) { delete [] Control; Control = new char[Size+2]; diff --git a/apt-inst/deb/debfile.h b/apt-inst/deb/debfile.h index 880bcf6c5..b068efcec 100644 --- a/apt-inst/deb/debfile.h +++ b/apt-inst/deb/debfile.h @@ -81,12 +81,12 @@ class debDebFile::MemControlExtract : public pkgDirStream // Members from DirStream virtual bool DoItem(Item &Itm,int &Fd); virtual bool Process(Item &Itm,const unsigned char *Data, - unsigned long Size,unsigned long Pos); + unsigned long long Size,unsigned long long Pos); // Helpers bool Read(debDebFile &Deb); - bool TakeControl(const void *Data,unsigned long Size); + bool TakeControl(const void *Data,unsigned long long Size); MemControlExtract() : IsControl(false), Control(0), Length(0), Member("control") {}; MemControlExtract(std::string Member) : IsControl(false), Control(0), Length(0), Member(Member) {}; diff --git a/apt-inst/dirstream.h b/apt-inst/dirstream.h index 1be2688a1..571fe86a5 100644 --- a/apt-inst/dirstream.h +++ b/apt-inst/dirstream.h @@ -37,10 +37,10 @@ class pkgDirStream Directory, FIFO} Type; char *Name; char *LinkTarget; + unsigned long long Size; unsigned long Mode; unsigned long UID; unsigned long GID; - unsigned long Size; unsigned long MTime; unsigned long Major; unsigned long Minor; @@ -50,7 +50,7 @@ class pkgDirStream virtual bool Fail(Item &Itm,int Fd); virtual bool FinishedFile(Item &Itm,int Fd); virtual bool Process(Item &/*Itm*/,const unsigned char * /*Data*/, - unsigned long /*Size*/,unsigned long /*Pos*/) {return true;}; + unsigned long long /*Size*/,unsigned long long /*Pos*/) {return true;}; virtual ~pkgDirStream() {}; }; -- cgit v1.2.3 From bcc352afa890788825dfbd1454847456748f511f Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 8 Jul 2014 10:05:54 +0200 Subject: increase libapt-inst to version 1.6 --- apt-inst/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-inst') diff --git a/apt-inst/makefile b/apt-inst/makefile index af887bba8..e4a3ae702 100644 --- a/apt-inst/makefile +++ b/apt-inst/makefile @@ -14,7 +14,7 @@ include ../buildlib/libversion.mak # The library name LIBRARY=apt-inst -MAJOR=1.5 +MAJOR=1.6 MINOR=0 SLIBS=$(PTHREADLIB) -lapt-pkg APT_DOMAIN:=libapt-inst$(MAJOR) -- cgit v1.2.3 From 5e49cbb7b65a79cf76ba251f6493fbd75e812466 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 27 Sep 2014 00:46:43 +0200 Subject: fix: Consecutive return, break, continue, goto or throw statements are unnecessary. Git-Dch: Ignore Reported-By: cppcheck --- apt-inst/dirstream.cc | 1 - 1 file changed, 1 deletion(-) (limited to 'apt-inst') diff --git a/apt-inst/dirstream.cc b/apt-inst/dirstream.cc index 39ebb3bb4..888020bfb 100644 --- a/apt-inst/dirstream.cc +++ b/apt-inst/dirstream.cc @@ -76,7 +76,6 @@ bool pkgDirStream::DoItem(Item &Itm,int &Fd) if(mkdir(Itm.Name,Itm.Mode) < 0) return false; return true; - break; } case Item::FIFO: break; -- cgit v1.2.3 From 804de19f5f89a94d445edc3b1b1cf95b55f71258 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 27 Sep 2014 00:49:25 +0200 Subject: fix: Prefer prefix ++/-- operators for non-primitive types Git-Dch: Ignore Reported-By: cppcheck --- apt-inst/extract.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-inst') diff --git a/apt-inst/extract.cc b/apt-inst/extract.cc index b60784450..026182c18 100644 --- a/apt-inst/extract.cc +++ b/apt-inst/extract.cc @@ -404,7 +404,7 @@ bool pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator Nde, // Now see if this package matches one in a replace depends pkgCache::DepIterator Dep = Ver.DependsList(); bool Ok = false; - for (; Dep.end() == false; Dep++) + for (; Dep.end() == false; ++Dep) { if (Dep->Type != pkgCache::Dep::Replaces) continue; -- cgit v1.2.3 From 60b64ffc3468579183abc1bac0179943d782a52e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 7 Nov 2014 14:21:35 +0100 Subject: guard ABI changes for LFS in apt-inst Git-Dch: Ignore --- apt-inst/contrib/arfile.h | 5 +++++ apt-inst/contrib/extracttar.cc | 5 +++++ apt-inst/contrib/extracttar.h | 11 ++++++++++- apt-inst/deb/debfile.cc | 8 ++++++++ apt-inst/deb/debfile.h | 12 ++++++++++-- apt-inst/dirstream.h | 12 +++++++++++- 6 files changed, 49 insertions(+), 4 deletions(-) (limited to 'apt-inst') diff --git a/apt-inst/contrib/arfile.h b/apt-inst/contrib/arfile.h index 5aa38aedc..f53356847 100644 --- a/apt-inst/contrib/arfile.h +++ b/apt-inst/contrib/arfile.h @@ -17,6 +17,7 @@ #include +#include #ifndef APT_8_CLEANER_HEADERS #include #endif @@ -61,7 +62,11 @@ struct ARArchive::Member unsigned long long Size; // Location of the data. +#if APT_PKG_ABI >= 413 unsigned long long Start; +#else + unsigned long Start; +#endif Member *Next; Member() : Start(0), Next(0) {}; diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 2c86d0d01..be0b69d96 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -60,8 +60,13 @@ struct ExtractTar::TarHeader // ExtractTar::ExtractTar - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ +#if APT_PKG_ABI >= 413 ExtractTar::ExtractTar(FileFd &Fd,unsigned long long Max,string DecompressionProgram) : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram) +#else +ExtractTar::ExtractTar(FileFd &Fd,unsigned long Max,string DecompressionProgram) + : File(Fd), MaxInSize(Max), DecompressProg(DecompressionProgram) +#endif { GZPid = -1; Eof = false; diff --git a/apt-inst/contrib/extracttar.h b/apt-inst/contrib/extracttar.h index 472e018f4..57be956bd 100644 --- a/apt-inst/contrib/extracttar.h +++ b/apt-inst/contrib/extracttar.h @@ -15,6 +15,7 @@ #define PKGLIB_EXTRACTTAR_H #include +#include #include @@ -39,7 +40,11 @@ class ExtractTar GNU_LongLink = 'K',GNU_LongName = 'L'}; FileFd &File; +#if APT_PKG_ABI >= 413 unsigned long long MaxInSize; +#else + unsigned long MaxInSize; +#endif int GZPid; FileFd InFd; bool Eof; @@ -52,8 +57,12 @@ class ExtractTar public: bool Go(pkgDirStream &Stream); - + +#if APT_PKG_ABI >= 413 ExtractTar(FileFd &Fd,unsigned long long Max,std::string DecompressionProgram); +#else + ExtractTar(FileFd &Fd,unsigned long Max,std::string DecompressionProgram); +#endif virtual ~ExtractTar(); }; diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 4853a13c7..a8bf754e4 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -203,7 +203,11 @@ bool debDebFile::MemControlExtract::DoItem(Item &Itm,int &Fd) /* Just memcopy the block from the tar extractor and put it in the right place in the pre-allocated memory block. */ bool debDebFile::MemControlExtract::Process(Item &/*Itm*/,const unsigned char *Data, +#if APT_PKG_ABI >= 413 unsigned long long Size,unsigned long long Pos) +#else + unsigned long Size,unsigned long Pos) +#endif { memcpy(Control + Pos, Data,Size); return true; @@ -232,7 +236,11 @@ bool debDebFile::MemControlExtract::Read(debDebFile &Deb) // --------------------------------------------------------------------- /* The given memory block is loaded into the parser and parsed as a control record. */ +#if APT_PKG_ABI >= 413 bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long long Size) +#else +bool debDebFile::MemControlExtract::TakeControl(const void *Data,unsigned long Size) +#endif { delete [] Control; Control = new char[Size+2]; diff --git a/apt-inst/deb/debfile.h b/apt-inst/deb/debfile.h index b068efcec..9d286716a 100644 --- a/apt-inst/deb/debfile.h +++ b/apt-inst/deb/debfile.h @@ -27,6 +27,7 @@ #include #include #include +#include #include @@ -81,13 +82,20 @@ class debDebFile::MemControlExtract : public pkgDirStream // Members from DirStream virtual bool DoItem(Item &Itm,int &Fd); virtual bool Process(Item &Itm,const unsigned char *Data, +#if APT_PKG_ABI >= 413 unsigned long long Size,unsigned long long Pos); - +#else + unsigned long Size,unsigned long Pos); +#endif // Helpers bool Read(debDebFile &Deb); +#if APT_PKG_ABI >= 413 bool TakeControl(const void *Data,unsigned long long Size); - +#else + bool TakeControl(const void *Data,unsigned long Size); +#endif + MemControlExtract() : IsControl(false), Control(0), Length(0), Member("control") {}; MemControlExtract(std::string Member) : IsControl(false), Control(0), Length(0), Member(Member) {}; ~MemControlExtract() {delete [] Control;}; diff --git a/apt-inst/dirstream.h b/apt-inst/dirstream.h index 571fe86a5..53ac24ba5 100644 --- a/apt-inst/dirstream.h +++ b/apt-inst/dirstream.h @@ -25,6 +25,7 @@ #ifndef PKGLIB_DIRSTREAM_H #define PKGLIB_DIRSTREAM_H +#include class pkgDirStream { @@ -37,10 +38,15 @@ class pkgDirStream Directory, FIFO} Type; char *Name; char *LinkTarget; +#if APT_PKG_ABI >= 413 unsigned long long Size; +#endif unsigned long Mode; unsigned long UID; unsigned long GID; +#if APT_PKG_ABI < 413 + unsigned long Size; +#endif unsigned long MTime; unsigned long Major; unsigned long Minor; @@ -49,9 +55,13 @@ class pkgDirStream virtual bool DoItem(Item &Itm,int &Fd); virtual bool Fail(Item &Itm,int Fd); virtual bool FinishedFile(Item &Itm,int Fd); +#if APT_PKG_ABI >= 413 virtual bool Process(Item &/*Itm*/,const unsigned char * /*Data*/, unsigned long long /*Size*/,unsigned long long /*Pos*/) {return true;}; - +#else + virtual bool Process(Item &/*Itm*/,const unsigned char * /*Data*/, + unsigned long /*Size*/,unsigned long /*Pos*/) {return true;}; +#endif virtual ~pkgDirStream() {}; }; -- cgit v1.2.3