瀏覽代碼

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.
Julian Andres Klode 12 年之前
父節點
當前提交
b68ce88357
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      apt-inst/deb/debfile.cc

+ 4 - 2
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());
    }