1*4882a593SmuzhiyunFrom 7f47efe1717c381f86566fabe0b1ced8cb98fe8f Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: irsl <irsl@users.noreply.github.com>
3*4882a593SmuzhiyunDate: Fri, 26 Oct 2018 11:51:15 +0200
4*4882a593SmuzhiyunSubject: [PATCH] fix for broken multipart/form-data
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunMalformed multipart/form-data payload results in infinite loop and thus denial of service
7*4882a593Smuzhiyun[Upstream status: https://github.com/shellinabox/shellinabox/pull/446]
8*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
9*4882a593Smuzhiyun---
10*4882a593Smuzhiyun libhttp/url.c | 3 +++
11*4882a593Smuzhiyun 1 file changed, 3 insertions(+)
12*4882a593Smuzhiyun
13*4882a593Smuzhiyundiff --git a/libhttp/url.c b/libhttp/url.c
14*4882a593Smuzhiyunindex ed29475..4177871 100644
15*4882a593Smuzhiyun--- a/libhttp/url.c
16*4882a593Smuzhiyun+++ b/libhttp/url.c
17*4882a593Smuzhiyun@@ -312,6 +312,9 @@ static void urlParsePostBody(struct URL *url,
18*4882a593Smuzhiyun               }
19*4882a593Smuzhiyun             }
20*4882a593Smuzhiyun           }
21*4882a593Smuzhiyun+        } else {
22*4882a593Smuzhiyun+           warn("[http] broken multipart/form-data!");
23*4882a593Smuzhiyun+           break;
24*4882a593Smuzhiyun         }
25*4882a593Smuzhiyun       }
26*4882a593Smuzhiyun       if (lastPart) {
27