]> git.saurik.com Git - apt.git/commitdiff
drop privileges in file:// method as we do for decompressors
authorDavid Kalnischkies <david@kalnischkies.de>
Fri, 9 Oct 2015 20:25:13 +0000 (22:25 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Wed, 4 Nov 2015 17:04:00 +0000 (18:04 +0100)
We drop it in decompressors, which are the natural next step, so if an
archive is used which isn't worldreadable (= not accessible by _apt) it
doesn't work anyway, so we just fail a bit earlier now and avoid all the
bad things which can happen over file (which could very well still be a
network resourc via NFS mounts or similar stuff, so hardly as safe as
the name might suggest at first).

methods/file.cc

index 40e85bce5a464d7fafa1014bfeba8a242cc3aa47..b689de6195c543276987fe7d84ca9e90209bb71a 100644 (file)
 class FileMethod : public pkgAcqMethod
 {
    virtual bool Fetch(FetchItem *Itm) APT_OVERRIDE;
-   
+   virtual bool Configuration(std::string Message) APT_OVERRIDE;
+
    public:
-   
+
    FileMethod() : pkgAcqMethod("1.0",SingleInstance | SendConfig | LocalOnly) {};
 };
+bool FileMethod::Configuration(std::string Message)
+{
+   if (pkgAcqMethod::Configuration(Message) == false)
+      return false;
+
+   DropPrivsOrDie();
+
+   return true;
+}
 
 // FileMethod::Fetch - Fetch a file                                    /*{{{*/
 // ---------------------------------------------------------------------