浏览代码

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) + ".{";
       std::string ext = std::string(Name) + ".{";
       for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressor.begin();
       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("}");
       ext.append("}");
       return _error->Error(_("Internal error, could not locate member %s"), ext.c_str());
       return _error->Error(_("Internal error, could not locate member %s"), ext.c_str());
    }
    }