diff options
author | Julian Andres Klode <jak@debian.org> | 2014-03-17 13:43:12 +0100 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2014-03-17 13:45:52 +0100 |
commit | b68ce88357daf362e60d7f8f131041289c8db690 (patch) | |
tree | cf62f2b6e7e62ed118a78b3eb3adf7c4bebd95f9 /apt-inst | |
parent | 384c9b0d4f69aac57da8298c4252499d1f7a83ca (diff) | |
download | apt-b68ce88357daf362e60d7f8f131041289c8db690.tar.gz |
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.
Diffstat (limited to 'apt-inst')
-rw-r--r-- | apt-inst/deb/debfile.cc | 6 |
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()); } |