You have to do the bounds check before the access.
[apt.git] / methods / http_main.cc
index cd52c42e83407bd22dc217720c0ca66970cbe06a..1e56044b72233dc7789d896847f336d123bfe365 100644 (file)
@@ -5,15 +5,13 @@
 
 #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);
-
-   HttpMethod Mth;
-
-   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();
 }