diff options
author | David Kalnischkies <david@kalnischkies.de> | 2015-12-01 14:09:23 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2015-12-01 14:26:05 +0100 |
commit | f359b7e8c03884cd9f097d4b3ff8b8b8be8053ba (patch) | |
tree | d51eb4a58ad3223325551b84b88e3e16779f7dba /apt-pkg/deb | |
parent | 7d19ee92f2368a40e739cb27d22d6d28f37ebf45 (diff) |
require explicit paths to dsc/control as we do for deb files
Otherwise a user is subject to unexpected content-injection depending on
which directory she happens to start apt in. This also cleans up the code
requiring less implementation details in build-dep which is always good.
Technically, this is an ABI break as we override virtual methods, but
that they weren't overridden was a mistake resulting in pure classes,
which shouldn't be pure, so they were unusable – and as they are new in
1.1 nobody is using them yet (and hopefully ever as they are borderline
implementation details).
Closes: 806693
Diffstat (limited to 'apt-pkg/deb')
-rw-r--r-- | apt-pkg/deb/debindexfile.cc | 18 | ||||
-rw-r--r-- | apt-pkg/deb/debindexfile.h | 13 |
2 files changed, 29 insertions, 2 deletions
diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index 708b40a96..c11efd0ae 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -278,6 +278,24 @@ pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const return NULL; return new debDscRecordParser(File, this); } +std::string debDscFileIndex::GetComponent() const +{ + return "local-dsc"; +} +std::string debDscFileIndex::GetArchitecture() const +{ + return "source"; +} +uint8_t debDscFileIndex::GetIndexFlags() const +{ + return pkgCache::Flag::LocalSource; +} + /*}}}*/ +// ControlFile Index - a directory with a debian/control file /*{{{*/ +std::string debDebianSourceDirIndex::GetComponent() const +{ + return "local-control"; +} /*}}}*/ // Index File types for Debian /*{{{*/ diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index e96a4761e..890141dff 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -152,7 +152,13 @@ public: class debDscFileIndex : public pkgDebianIndexRealFile { void * const d; - public: + +protected: + virtual std::string GetComponent() const APT_OVERRIDE; + virtual std::string GetArchitecture() const APT_OVERRIDE; + virtual uint8_t GetIndexFlags() const APT_OVERRIDE; + +public: virtual const Type *GetType() const APT_OVERRIDE APT_CONST; virtual pkgSrcRecords::Parser *CreateSrcParser() const APT_OVERRIDE; virtual bool HasPackages() const APT_OVERRIDE {return false;}; @@ -163,7 +169,10 @@ class debDscFileIndex : public pkgDebianIndexRealFile class debDebianSourceDirIndex : public debDscFileIndex { - public: +protected: + virtual std::string GetComponent() const APT_OVERRIDE; + +public: virtual const Type *GetType() const APT_OVERRIDE APT_CONST; }; |