]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Fix issue discovered by Anoop. Passing u32 ptr to a size_t can caused badness.
authorVictor Julien <victor@inliniac.net>
Fri, 2 Mar 2012 15:17:58 +0000 (16:17 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 2 Mar 2012 15:17:58 +0000 (16:17 +0100)
src/app-layer-htp.c

index 89e0fd7b89b07b44ba143e1f432092ea3e5e1d27..ce7ee75108c4aeb57c601b722834cf04a38cc96a 100644 (file)
@@ -1551,7 +1551,7 @@ static int HtpRequestBodyHandlePOST(HtpState *hstate, HtpTxUserData *htud,
     if (!(htud->flags & HTP_FILENAME_SET))
     {
         uint8_t *filename = NULL;
-        uint32_t filename_len = 0;
+        size_t filename_len = 0;
 
         /* get the name */
         if (tx->parsed_uri != NULL && tx->parsed_uri->path != NULL) {
@@ -1560,7 +1560,7 @@ static int HtpRequestBodyHandlePOST(HtpState *hstate, HtpTxUserData *htud,
         }
 
         if (filename != NULL) {
-            result = HTPFileOpen(hstate, filename, filename_len, data, data_len,
+            result = HTPFileOpen(hstate, filename, (uint32_t)filename_len, data, data_len,
                     hstate->transaction_cnt, STREAM_TOSERVER);
             if (result == -1) {
                 goto end;
@@ -1604,7 +1604,7 @@ static int HtpRequestBodyHandlePUT(HtpState *hstate, HtpTxUserData *htud,
     if (!(htud->flags & HTP_FILENAME_SET))
     {
         uint8_t *filename = NULL;
-        uint32_t filename_len = 0;
+        size_t filename_len = 0;
 
         /* get the name */
         if (tx->parsed_uri != NULL && tx->parsed_uri->path != NULL) {
@@ -1613,7 +1613,7 @@ static int HtpRequestBodyHandlePUT(HtpState *hstate, HtpTxUserData *htud,
         }
 
         if (filename != NULL) {
-            result = HTPFileOpen(hstate, filename, filename_len, data, data_len,
+            result = HTPFileOpen(hstate, filename, (uint32_t)filename_len, data, data_len,
                     hstate->transaction_cnt, STREAM_TOSERVER);
             if (result == -1) {
                 goto end;
@@ -1658,7 +1658,7 @@ int HtpResponseBodyHandle(HtpState *hstate, HtpTxUserData *htud,
         SCLogDebug("setting up file name");
 
         uint8_t *filename = NULL;
-        uint32_t filename_len = 0;
+        size_t filename_len = 0;
 
         /* try Content-Disposition header first */
         htp_header_t *h = (htp_header_t *)table_getc(tx->response_headers,
@@ -1666,7 +1666,7 @@ int HtpResponseBodyHandle(HtpState *hstate, HtpTxUserData *htud,
         if (h != NULL && bstr_len(h->value) > 0) {
             /* parse content-disposition */
             (void)HTTPParseContentDispositionHeader((uint8_t *)"filename=", 9,
-                    (uint8_t *) bstr_ptr(h->value), bstr_len(h->value), &filename, (size_t *)&filename_len);
+                    (uint8_t *) bstr_ptr(h->value), bstr_len(h->value), &filename, &filename_len);
         }
 
         /* fall back to name from the uri */
@@ -1679,7 +1679,7 @@ int HtpResponseBodyHandle(HtpState *hstate, HtpTxUserData *htud,
         }
 
         if (filename != NULL) {
-            result = HTPFileOpen(hstate, filename, filename_len,
+            result = HTPFileOpen(hstate, filename, (uint32_t)filename_len,
                     data, data_len, hstate->transaction_cnt, STREAM_TOCLIENT);
             SCLogDebug("result %d", result);
             if (result == -1) {