]> granicus.if.org Git - php/commitdiff
Interpretation of curl_setopt values for boolean parameters
authordedal.qq <dedal.qq@gmail.com>
Tue, 13 Dec 2016 21:52:16 +0000 (00:52 +0300)
committerSara Golemon <pollita@php.net>
Mon, 26 Dec 2016 06:32:49 +0000 (22:32 -0800)
ext/curl/interface.c

index 65539d1acc7b15fab4ec5d54863ec4d8d83a2f11..8a354a371f86eed870a95c749fa53b5073422da3 100644 (file)
@@ -2302,8 +2302,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
                        error = curl_easy_setopt(ch->cp, option, lval);
                        break;
                case CURLOPT_SAFE_UPLOAD:
-                       lval = zval_get_long(zvalue);
-                       if (lval == 0) {
+                       if (!zend_is_true(zvalue)) {
                                php_error_docref(NULL, E_WARNING, "Disabling safe uploads is no longer supported");
                                return FAILURE;
                        }
@@ -2639,13 +2638,11 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
                        break;
 
                case CURLOPT_FOLLOWLOCATION:
-                       lval = zval_get_long(zvalue);
+                       lval = zend_is_true(zvalue);
 #if LIBCURL_VERSION_NUM < 0x071304
-                       if (PG(open_basedir) && *PG(open_basedir)) {
-                               if (lval != 0) {
-                                       php_error_docref(NULL, E_WARNING, "CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set");
-                                       return FAILURE;
-                               }
+                       if (lval && PG(open_basedir) && *PG(open_basedir)) {
+                               php_error_docref(NULL, E_WARNING, "CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set");
+                               return FAILURE;
                        }
 #endif
                        error = curl_easy_setopt(ch->cp, option, lval);
@@ -2801,8 +2798,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
                        break;
 
                case CURLOPT_RETURNTRANSFER:
-                       lval = zval_get_long(zvalue);
-                       if (lval) {
+                       if (zend_is_true(zvalue)) {
                                ch->handlers->write->method = PHP_CURL_RETURN;
                        } else {
                                ch->handlers->write->method = PHP_CURL_STDOUT;
@@ -2878,8 +2874,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
                }
 
                case CURLINFO_HEADER_OUT:
-                       lval = zval_get_long(zvalue);
-                       if (lval == 1) {
+                       if (zend_is_true(zvalue)) {
                                curl_easy_setopt(ch->cp, CURLOPT_DEBUGFUNCTION, curl_debug);
                                curl_easy_setopt(ch->cp, CURLOPT_DEBUGDATA, (void *)ch);
                                curl_easy_setopt(ch->cp, CURLOPT_VERBOSE, 1);