don't enable curls cookie engine by default & accident
[m6w6/ext-http] / http_querystring_api.c
index 5d636a3ed20cea4f757ce8e9c7b85a46a699addd..e6b557adc3f0d5248b3283d761f4734e047f1836 100644 (file)
@@ -127,14 +127,14 @@ PHP_HTTP_API int _http_querystring_modify(zval *qarray, zval *params TSRMLS_DC)
        } else {
                int rv;
                zval array;
+               zval *qstring = http_zsep(IS_STRING, params);
                
                INIT_PZVAL(&array);
                array_init(&array);
                
-               ZVAL_ADDREF(params);
-               convert_to_string_ex(&params);
-               sapi_module.treat_data(PARSE_STRING, estrdup(Z_STRVAL_P(params)), &array TSRMLS_CC);
-               zval_ptr_dtor(&params);
+               sapi_module.treat_data(PARSE_STRING, estrdup(Z_STRVAL_P(qstring)), &array TSRMLS_CC);
+               zval_ptr_dtor(&qstring);
+               
                rv = http_querystring_modify_array(qarray, &array);
                zval_dtor(&array);
                return rv;
@@ -161,6 +161,11 @@ static inline int _http_querystring_modify_array(zval *qarray, zval *params TSRM
 static inline int _http_querystring_modify_array_ex(zval *qarray, int key_type, char *key, int keylen, ulong idx, zval *params_entry TSRMLS_DC)
 {
        zval **qarray_entry;
+
+       /* ensure array type */
+       if (Z_TYPE_P(qarray) != IS_ARRAY) {
+               convert_to_array(qarray);
+       }
        
        /* delete */
        if (Z_TYPE_P(params_entry) == IS_NULL) {