Quellcode durchsuchen

postprocessor: fixed usage of strlen() in loop

Evgeny Grin (Karlson2k) vor 6 Jahren
Ursprung
Commit
08a359c388
1 geänderte Dateien mit 6 neuen und 2 gelöschten Zeilen
  1. 6 2
      src/microhttpd/postprocessor.c

+ 6 - 2
src/microhttpd/postprocessor.c

@@ -520,12 +520,14 @@ post_process_urlencoded (struct MHD_PostProcessor *pp,
  * rest of the line into the suffix ptr.
  *
  * @param prefix prefix to match
+ * @param prefix_len length of @a prefix
  * @param line line to match prefix in
  * @param suffix set to a copy of the rest of the line, starting at the end of the match
  * @return #MHD_YES if there was a match, #MHD_NO if not
  */
 static int
 try_match_header (const char *prefix,
+                  size_t prefix_len,
                   char *line,
                   char **suffix)
 {
@@ -535,9 +537,9 @@ try_match_header (const char *prefix,
     {
       if (MHD_str_equal_caseless_n_ (prefix,
                                      line,
-                                     strlen (prefix)))
+                                     prefix_len))
         {
-          *suffix = strdup (&line[strlen (prefix)]);
+          *suffix = strdup (&line[prefix_len]);
           return MHD_YES;
         }
       ++line;
@@ -724,9 +726,11 @@ process_multipart_headers (struct MHD_PostProcessor *pp,
   else
     {
       try_match_header ("Content-type: ",
+                        MHD_STATICSTR_LEN_("Content-type: "),
                         buf,
                         &pp->content_type);
       try_match_header ("Content-Transfer-Encoding: ",
+                        MHD_STATICSTR_LEN_("Content-Transfer-Encoding: "),
                         buf,
                         &pp->content_transfer_encoding);
     }