diff options
Diffstat (limited to '0002-Fix-type-check-for-setContentDownload.patch')
-rw-r--r-- | 0002-Fix-type-check-for-setContentDownload.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/0002-Fix-type-check-for-setContentDownload.patch b/0002-Fix-type-check-for-setContentDownload.patch new file mode 100644 index 0000000..aa3c7cf --- /dev/null +++ b/0002-Fix-type-check-for-setContentDownload.patch @@ -0,0 +1,57 @@ +From 309da4c0c107c0c32b500db53339fe266bd8b678 Mon Sep 17 00:00:00 2001 +From: John Boehr <jbboehr@gmail.com> +Date: Thu, 15 Jun 2017 11:25:52 -0700 +Subject: [PATCH 2/3] Fix type check for setContentDownload + +* Change exception thrown to InvalidArgumentException +--- + serverresponse.c | 8 +++++++- + tests/response/setContentDownload_notResource.phpt | 6 +----- + userland/src/ServerResponse.php | 2 +- + 3 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/serverresponse.c b/serverresponse.c +index 2e912f7..02853e1 100644 +--- a/serverresponse.c ++++ b/serverresponse.c +@@ -648,13 +648,19 @@ PHP_METHOD(ServerResponse, setContentDownload) + smart_str buf2 = {0}; + + ZEND_PARSE_PARAMETERS_START(2, 4) +- Z_PARAM_RESOURCE(zstream) ++ Z_PARAM_ZVAL(zstream) + Z_PARAM_STR(name) + Z_PARAM_OPTIONAL + Z_PARAM_STR(disposition) + Z_PARAM_ARRAY(params) + ZEND_PARSE_PARAMETERS_END(); + ++ // Check type of resource parameter ++ if( Z_TYPE_P(zstream) != IS_RESOURCE ) { ++ zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0, "Argument 1 passed to ServerResponse::setContentDownload() must be of the type resource, string given"); ++ return; ++ } ++ + // Initialize params + if( !params || Z_TYPE_P(params) != IS_ARRAY ) { + params = &_params; +diff --git a/tests/response/setContentDownload_notResource.phpt b/tests/response/setContentDownload_notResource.phpt +index 1e9cb45..0688334 100644 +--- a/tests/response/setContentDownload_notResource.phpt ++++ b/tests/response/setContentDownload_notResource.phpt +@@ -14,11 +14,7 @@ json + $response = new ServerResponse(); + try { + $response->setContentDownload('not-a-resource', 'disposition'); +-} catch( TypeError $e ) { +- // php 7 (extension) +- var_dump($e->getMessage()); +-} catch( RuntimeException $e ) { +- // php 5 (userland) ++} catch( InvalidArgumentException $e ) { + var_dump($e->getMessage()); + } + --EXPECT-- +-- +2.9.4 + |