gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [libmicrohttpd] branch master updated: fix spacy url check


From: gnunet
Subject: [GNUnet-SVN] [libmicrohttpd] branch master updated: fix spacy url check in strict mode
Date: Fri, 02 Mar 2018 22:21:31 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository libmicrohttpd.

The following commit(s) were added to refs/heads/master by this push:
     new fd283b00 fix spacy url check in strict mode
fd283b00 is described below

commit fd283b002cae7cde31e12206a5456ea289adcc65
Author: Christian Grothoff <address@hidden>
AuthorDate: Fri Mar 2 22:21:28 2018 +0100

    fix spacy url check in strict mode
---
 src/examples/demo.c                | 8 ++++----
 src/lib/connection_call_handlers.c | 7 +++++--
 src/microhttpd/connection.c        | 7 +++++--
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/examples/demo.c b/src/examples/demo.c
index 858fb735..4e89c4e3 100644
--- a/src/examples/demo.c
+++ b/src/examples/demo.c
@@ -683,9 +683,9 @@ return_directory_response (struct MHD_Connection 
*connection)
  * @param method GET, PUT, POST, etc.
  * @param version HTTP version
  * @param upload_data data from upload (PUT/POST)
- * @param upload_data_size number of bytes in "upload_data"
+ * @param upload_data_size number of bytes in @a upload_data
  * @param ptr our context
- * @return MHD_YES on success, MHD_NO to drop connection
+ * @return #MHD_YES on success, #MHD_NO to drop connection
  */
 static int
 generate_page (void *cls,
@@ -700,8 +700,8 @@ generate_page (void *cls,
   int ret;
   int fd;
   struct stat buf;
-  (void)cls;               /* Unused. Silent compiler warning. */
-  (void)version;           /* Unused. Silent compiler warning. */
+  (void) cls;               /* Unused. Silent compiler warning. */
+  (void) version;           /* Unused. Silent compiler warning. */
 
   if (0 != strcmp (url, "/"))
     {
diff --git a/src/lib/connection_call_handlers.c 
b/src/lib/connection_call_handlers.c
index f1c31cb6..9e67216c 100644
--- a/src/lib/connection_call_handlers.c
+++ b/src/lib/connection_call_handlers.c
@@ -1750,6 +1750,7 @@ parse_initial_message_line (struct MHD_Request *request,
   char *http_version;
   char *args;
   unsigned int unused_num_headers;
+  size_t url_end;
 
   if (NULL == (uri = memchr (line,
                              ' ',
@@ -1770,6 +1771,7 @@ parse_initial_message_line (struct MHD_Request *request,
       uri = NULL;
       request->version_s = "";
       args = NULL;
+      url_end = line_len - (line - uri);
     }
   else
     {
@@ -1799,11 +1801,12 @@ parse_initial_message_line (struct MHD_Request *request,
                          '?',
                          line_len - (uri - line));
         }
+      url_end = http_version - uri;
     }
   if ( (MHD_PSL_STRICT == daemon->protocol_strict_level) &&
-       (NULL != memchr (line,
+       (NULL != memchr (uri,
                         ' ',
-                        http_version - line)) )
+                        url_end)) )
     {
       /* space exists in URI and we are supposed to be strict, reject */
       return MHD_NO;
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 66e9b394..8c61a8ba 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -2189,6 +2189,7 @@ parse_initial_message_line (struct MHD_Connection 
*connection,
   char *http_version;
   char *args;
   unsigned int unused_num_headers;
+  size_t uri_len;
 
   if (NULL == (uri = memchr (line,
                              ' ',
@@ -2205,6 +2206,7 @@ parse_initial_message_line (struct MHD_Connection 
*connection,
   if ((size_t)(uri - line) == line_len)
     {
       curi = "";
+      uri_len = 0;
       uri = NULL;
       connection->version = "";
       args = NULL;
@@ -2237,11 +2239,12 @@ parse_initial_message_line (struct MHD_Connection 
*connection,
                          '?',
                          line_len - (uri - line));
         }
+      uri_len = http_version - uri;
     }
   if ( (1 <= daemon->strict_for_client) &&
-       (NULL != memchr (line,
+       (NULL != memchr (curi,
                         ' ',
-                        http_version - line)) )
+                        uri_len)) )
     {
       /* space exists in URI and we are supposed to be strict, reject */
       return MHD_NO;

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]