]> git.saurik.com Git - apt.git/blobdiff - methods/http_main.cc
You have to do the bounds check before the access.
[apt.git] / methods / http_main.cc
index f21a5709c69d9f4c75f385c7aa0ae42dd09a8df1..1e56044b72233dc7789d896847f336d123bfe365 100644 (file)
@@ -5,16 +5,13 @@
 
 #include "http.h"
 
 
 #include "http.h"
 
-int main()
+int main(int, const char *argv[])
 {
 {
-   setlocale(LC_ALL, "");
-
    // ignore SIGPIPE, this can happen on write() if the socket
    // closes the connection (this is dealt with via ServerDie())
    signal(SIGPIPE, SIG_IGN);
    // ignore SIGPIPE, this can happen on write() if the socket
    // closes the connection (this is dealt with via ServerDie())
    signal(SIGPIPE, SIG_IGN);
-
-   HttpMethod Mth;
-
-   Mth.DropPrivsOrDie();
-   return Mth.Loop();
+   std::string Binary = flNotDir(argv[0]);
+   if (Binary.find('+') == std::string::npos && Binary != "http")
+      Binary.append("+http");
+   return HttpMethod(std::move(Binary)).Loop();
 }
 }