summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/acquire.cc3
-rw-r--r--apt-pkg/cacheiterators.h10
-rw-r--r--apt-pkg/contrib/cdromutl.cc3
-rw-r--r--apt-pkg/contrib/mmap.cc5
-rw-r--r--apt-pkg/deb/dpkgpm.cc4
-rw-r--r--apt-pkg/depcache.cc2
-rw-r--r--apt-pkg/indexcopy.cc11
7 files changed, 25 insertions, 13 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 80c2fee0f..38944bbac 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -444,8 +444,9 @@ bool pkgAcquire::Clean(string Dir)
unlink(Dir->d_name);
};
- chdir(StartDir.c_str());
closedir(D);
+ if (chdir(StartDir.c_str()) != 0)
+ return _error->Errno("chdir",_("Unable to change to %s"),StartDir.c_str());
return true;
}
/*}}}*/
diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h
index 08eafca0f..bbbcb7753 100644
--- a/apt-pkg/cacheiterators.h
+++ b/apt-pkg/cacheiterators.h
@@ -104,7 +104,7 @@ class pkgCache::VerIterator
// Iteration
void operator ++(int) {if (Ver != Owner->VerP) Ver = Owner->VerP + Ver->NextVer;};
inline void operator ++() {operator ++(0);};
- inline bool end() const {return Owner == NULL || (Ver == Owner->VerP?true:false);};
+ inline bool end() const {return Owner == 0 || (Ver == Owner->VerP?true:false);};
inline void operator =(const VerIterator &B) {Ver = B.Ver; Owner = B.Owner;};
// Comparison
@@ -160,7 +160,7 @@ class pkgCache::DescIterator
// Iteration
void operator ++(int) {if (Desc != Owner->DescP) Desc = Owner->DescP + Desc->NextDesc;};
inline void operator ++() {operator ++(0);};
- inline bool end() const {return Desc == Owner->DescP?true:false;};
+ inline bool end() const {return Owner == 0 || Desc == Owner->DescP?true:false;};
inline void operator =(const DescIterator &B) {Desc = B.Desc; Owner = B.Owner;};
// Comparison
@@ -314,7 +314,7 @@ class pkgCache::PkgFileIterator
// Iteration
void operator ++(int) {if (File!= Owner->PkgFileP) File = Owner->PkgFileP + File->NextFile;};
inline void operator ++() {operator ++(0);};
- inline bool end() const {return File == Owner->PkgFileP?true:false;};
+ inline bool end() const {return Owner == 0 || File == Owner->PkgFileP?true:false;};
// Comparison
inline bool operator ==(const PkgFileIterator &B) const {return File == B.File;};
@@ -360,7 +360,7 @@ class pkgCache::VerFileIterator
// Iteration
void operator ++(int) {if (FileP != Owner->VerFileP) FileP = Owner->VerFileP + FileP->NextFile;};
inline void operator ++() {operator ++(0);};
- inline bool end() const {return FileP == Owner->VerFileP?true:false;};
+ inline bool end() const {return Owner == 0 || FileP == Owner->VerFileP?true:false;};
// Comparison
inline bool operator ==(const VerFileIterator &B) const {return FileP == B.FileP;};
@@ -392,7 +392,7 @@ class pkgCache::DescFileIterator
// Iteration
void operator ++(int) {if (FileP != Owner->DescFileP) FileP = Owner->DescFileP + FileP->NextFile;};
inline void operator ++() {operator ++(0);};
- inline bool end() const {return FileP == Owner->DescFileP?true:false;};
+ inline bool end() const {return Owner == 0 || FileP == Owner->DescFileP?true:false;};
// Comparison
inline bool operator ==(const DescFileIterator &B) const {return FileP == B.FileP;};
diff --git a/apt-pkg/contrib/cdromutl.cc b/apt-pkg/contrib/cdromutl.cc
index 6f00e1451..b6524a178 100644
--- a/apt-pkg/contrib/cdromutl.cc
+++ b/apt-pkg/contrib/cdromutl.cc
@@ -176,7 +176,8 @@ bool IdentCdrom(string CD,string &Res,unsigned int Version)
Hash.Add(Dir->d_name);
};
- chdir(StartDir.c_str());
+ if (chdir(StartDir.c_str()) != 0)
+ return _error->Errno("chdir",_("Unable to change to %s"),StartDir.c_str());
closedir(D);
// Some stats from the fsys
diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc
index abcae46fe..eed438250 100644
--- a/apt-pkg/contrib/mmap.cc
+++ b/apt-pkg/contrib/mmap.cc
@@ -192,7 +192,8 @@ DynamicMMap::~DynamicMMap()
unsigned long EndOfFile = iSize;
iSize = WorkSpace;
Close(false);
- ftruncate(Fd->Fd(),EndOfFile);
+ if(ftruncate(Fd->Fd(),EndOfFile) < 0)
+ _error->Errno("ftruncate", _("Failed to truncate file"));
}
/*}}}*/
// DynamicMMap::RawAllocate - Allocate a raw chunk of unaligned space /*{{{*/
@@ -209,7 +210,7 @@ unsigned long DynamicMMap::RawAllocate(unsigned long Size,unsigned long Aln)
// Just in case error check
if (Result + Size > WorkSpace)
{
- _error->Error("Dynamic MMap ran out of room");
+ _error->Error(_("Dynamic MMap ran out of room"));
return 0;
}
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 4fad0fd52..85cf4e119 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -531,7 +531,7 @@ bool pkgDPkgPM::OpenLog()
struct tm *tmp = localtime(&t);
strftime(outstr, sizeof(outstr), "%F %T", tmp);
fprintf(term_out, "\nLog started: ");
- fprintf(term_out, outstr);
+ fprintf(term_out, "%s", outstr);
fprintf(term_out, "\n");
}
return true;
@@ -546,7 +546,7 @@ bool pkgDPkgPM::CloseLog()
struct tm *tmp = localtime(&t);
strftime(outstr, sizeof(outstr), "%F %T", tmp);
fprintf(term_out, "Log ended: ");
- fprintf(term_out, outstr);
+ fprintf(term_out, "%s", outstr);
fprintf(term_out, "\n");
fclose(term_out);
}
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index 859e64ea1..2411bfe89 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -269,7 +269,7 @@ bool pkgDepCache::writeStateFile(OpProgress *prog, bool InstalledOnly)
ostr.str(string(""));
ostr << "Package: " << pkg.Name()
<< "\nAuto-Installed: 1\n\n";
- fprintf(OutFile,ostr.str().c_str());
+ fprintf(OutFile,"%s",ostr.str().c_str());
fprintf(OutFile,"\n");
}
}
diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc
index b30777d8d..b1e75e30f 100644
--- a/apt-pkg/indexcopy.cc
+++ b/apt-pkg/indexcopy.cc
@@ -522,6 +522,15 @@ bool SigVerify::Verify(string prefix, string file, indexRecords *MetaIndex)
{
const indexRecords::checkSum *Record = MetaIndex->Lookup(file);
+ // we skip non-existing files in the verifcation to support a cdrom
+ // with no Packages file (just a Package.gz), see LP: #255545
+ // (non-existing files are not considered a error)
+ if(!FileExists(prefix+file))
+ {
+ _error->Warning("Skipping non-exisiting file %s", string(prefix+file).c_str());
+ return true;
+ }
+
if (!Record)
{
_error->Warning("Can't find authentication record for: %s",file.c_str());
@@ -639,7 +648,7 @@ bool SigVerify::CopyAndVerify(string CDROM,string Name,vector<string> &SigList,
// Open the Release file and add it to the MetaIndex
if(!MetaIndex->Load(*I+"Release"))
{
- _error->Error(MetaIndex->ErrorText.c_str());
+ _error->Error("%s",MetaIndex->ErrorText.c_str());
return false;
}