summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2014-03-17 13:43:12 +0100
committerJulian Andres Klode <jak@debian.org>2014-03-17 13:45:52 +0100
commitb68ce88357daf362e60d7f8f131041289c8db690 (patch)
treecf62f2b6e7e62ed118a78b3eb3adf7c4bebd95f9
parent384c9b0d4f69aac57da8298c4252499d1f7a83ca (diff)
apt-inst: Do not try to create a substring of an empty string in error reporting
One of our compressors (the empty one) has an empty extension. Calling substr on it fails.
-rw-r--r--apt-inst/deb/debfile.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc
index 3803329fa..a63cb6716 100644
--- a/apt-inst/deb/debfile.cc
+++ b/apt-inst/deb/debfile.cc
@@ -124,8 +124,10 @@ bool debDebFile::ExtractTarMember(pkgDirStream &Stream,const char *Name)
{
std::string ext = std::string(Name) + ".{";
for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressor.begin();
- c != compressor.end(); ++c)
- ext.append(c->Extension.substr(1));
+ c != compressor.end(); ++c) {
+ if (!c->Extension.empty())
+ ext.append(c->Extension.substr(1));
+ }
ext.append("}");
return _error->Error(_("Internal error, could not locate member %s"), ext.c_str());
}