fix early loop termination in httpd path_info()
authorchrisz <chrisz@openbsd.org>
Wed, 13 Aug 2014 08:08:55 +0000 (08:08 +0000)
committerchrisz <chrisz@openbsd.org>
Wed, 13 Aug 2014 08:08:55 +0000 (08:08 +0000)
without this fix httpd always put at least the first
path component in SCRIPT_NAME even when it did not exist.
Now for completely non-existant paths everything goes into
PATH_INFO.

usr.sbin/httpd/httpd.c

index 220f537..d5ca6e4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: httpd.c,v 1.17 2014/08/05 15:36:59 reyk Exp $ */
+/*     $OpenBSD: httpd.c,v 1.18 2014/08/13 08:08:55 chrisz Exp $       */
 
 /*
  * Copyright (c) 2014 Reyk Floeter <reyk@openbsd.org>
@@ -593,7 +593,7 @@ path_info(char *name)
        start = path;
        end = start + strlen(path);
 
-       for (p = end; p > start; p--) {
+       for (p = end; p >= start; p--) {
                if (*p != '/')
                        continue;
                if (stat(path, &st) == 0)