X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_request_api.c;h=d9b1a2198a06067823881907a09bbad592407856;hp=8b195f80a644647d6e3f0048f0a538208628a385;hb=ffc893b125c6cc9b385a68a357b08ba2cc4e91f6;hpb=bb1f32fd5d06b9b9ace6517c177b0fe58c9ff57c diff --git a/http_request_api.c b/http_request_api.c index 8b195f8..d9b1a21 100644 --- a/http_request_api.c +++ b/http_request_api.c @@ -275,12 +275,14 @@ PHP_HTTP_API STATUS _http_request_body_fill(http_request_body *body, HashTable * /* file data */ FOREACH_HASH_VAL(files, data) { - CURLcode err; zval **file, **type, **name; - if ( SUCCESS == zend_hash_find(Z_ARRVAL_PP(data), "name", sizeof("name"), (void **) &name) && - SUCCESS == zend_hash_find(Z_ARRVAL_PP(data), "type", sizeof("type"), (void **) &type) && - SUCCESS == zend_hash_find(Z_ARRVAL_PP(data), "file", sizeof("file"), (void **) &file)) { - err = curl_formadd(&http_post_data[0], &http_post_data[1], + + if ( SUCCESS != zend_hash_find(Z_ARRVAL_PP(data), "name", sizeof("name"), (void **) &name) || + SUCCESS != zend_hash_find(Z_ARRVAL_PP(data), "type", sizeof("type"), (void **) &type) || + SUCCESS != zend_hash_find(Z_ARRVAL_PP(data), "file", sizeof("file"), (void **) &file)) { + http_error(HE_NOTICE, HTTP_E_INVALID_PARAM, "Post file array entry misses either 'name', 'type' or 'file' entry"); + } else { + CURLcode err = curl_formadd(&http_post_data[0], &http_post_data[1], CURLFORM_COPYNAME, Z_STRVAL_PP(name), CURLFORM_FILE, Z_STRVAL_PP(file), CURLFORM_CONTENTTYPE, Z_STRVAL_PP(type), @@ -291,8 +293,6 @@ PHP_HTTP_API STATUS _http_request_body_fill(http_request_body *body, HashTable * curl_formfree(http_post_data[0]); return FAILURE; } - } else { - http_error(HE_NOTICE, HTTP_E_INVALID_PARAM, "Post file array entry misses either 'name', 'type' or 'file' entry"); } }