- improve request/response line parser
[m6w6/ext-http] / http_message_object.c
index c984e960fa00a34e2da1a78f282c55784d1e8443..044df4c58616087b61a41646cfd9c97de6127fc1 100644 (file)
@@ -846,16 +846,18 @@ PHP_METHOD(HttpMessage, getHeaders)
  */
 PHP_METHOD(HttpMessage, setHeaders)
 {
-       zval *new_headers, old_headers;
+       zval *new_headers = NULL, old_headers;
        getObject(http_message_object, obj);
 
-       if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &new_headers)) {
+       if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!", &new_headers)) {
                return;
        }
 
        zend_hash_clean(&obj->message->hdrs);
-       INIT_ZARR(old_headers, &obj->message->hdrs);
-       array_copy(new_headers, &old_headers);
+       if (new_headers) {
+               INIT_ZARR(old_headers, &obj->message->hdrs);
+               array_copy(new_headers, &old_headers);
+       }
 }
 /* }}} */