summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/soap/soap.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 0216de39f2..3c4a86c01e 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -1539,6 +1539,11 @@ PHP_METHOD(SoapServer, handle)
return;
}
+ if (ZEND_NUM_ARGS() > 0 && ZEND_SIZE_T_INT_OVFL(arg_len)) {
+ soap_server_fault("Server", "Input string is too long", NULL, NULL, NULL);
+ return;
+ }
+
if (SG(request_info).request_method &&
strcmp(SG(request_info).request_method, "GET") == 0 &&
SG(request_info).query_string &&