fix segfault when initializing a request message with a body
[m6w6/ext-http] / php_http_message.c
index 80c488e6165ce9572a5bb1ae6e68a243ed3162d5..68ba91adb09ee207ec28ad894ce7f0fd58eb5fd2 100644 (file)
@@ -774,9 +774,12 @@ STATUS php_http_message_object_set_body(php_http_message_object_t *msg_obj, zval
        if (msg_obj->body) {
                zend_objects_store_del_ref_by_handle(msg_obj->body->zv.handle TSRMLS_CC);
        }
-       php_http_message_body_free(&msg_obj->message->body);
-
-       msg_obj->message->body = php_http_message_body_init(&body_obj->body, NULL TSRMLS_CC);
+       if (msg_obj->message) {
+               php_http_message_body_free(&msg_obj->message->body);
+               msg_obj->message->body = php_http_message_body_init(&body_obj->body, NULL TSRMLS_CC);
+       } else {
+               msg_obj->message = php_http_message_init(NULL, 0, php_http_message_body_init(&body_obj->body, NULL TSRMLS_CC) TSRMLS_CC);
+       }
        msg_obj->body = body_obj;
 
        if (tmp) {