Skip to content

Commit 2a85703

Browse files
committed
Implement review suggestions
1 parent 947bc64 commit 2a85703

File tree

6 files changed

+76
-98
lines changed

6 files changed

+76
-98
lines changed

ext/openssl/xp_ssl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2653,7 +2653,7 @@ static char *php_openssl_get_url_name(const char *resourcename,
26532653
zend_string *resource = zend_string_init(resourcename, resourcenamelen, false);
26542654
uri_internal_t *internal_uri = php_uri_parse(uri_handler, resource, true);
26552655
if (internal_uri == NULL) {
2656-
zend_string_release(resource);
2656+
zend_string_efree(resource);
26572657
return NULL;
26582658
}
26592659

ext/soap/php_http.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -336,13 +336,13 @@ static bool in_domain(const zend_string *host, const zend_string *domain)
336336
}
337337
}
338338

339-
int make_http_soap_request(zval *this_ptr,
340-
zend_string *buf,
341-
zend_string *location,
342-
char *soapaction,
343-
int soap_version,
344-
const zend_string *uri_parser_class,
345-
zval *return_value)
339+
int make_http_soap_request(zval *this_ptr,
340+
zend_string *buf,
341+
zend_string *location,
342+
char *soapaction,
343+
int soap_version,
344+
const zend_string *uri_parser_class,
345+
zval *return_value)
346346
{
347347
zend_string *request;
348348
smart_str soap_headers = {0};
@@ -1161,7 +1161,7 @@ int make_http_soap_request(zval *this_ptr,
11611161

11621162
zend_string *loc_str = zend_string_init(loc, strlen(loc), false);
11631163
php_uri *new_uri = php_uri_parse_to_struct(uri_handler, loc_str, URI_COMPONENT_READ_NORMALIZED_ASCII, true);
1164-
zend_string_release(loc_str);
1164+
zend_string_release_ex(loc_str, false);
11651165
efree(loc);
11661166

11671167
if (new_uri != NULL) {

ext/soap/php_http.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
#ifndef PHP_HTTP_H
2020
#define PHP_HTTP_H
2121

22-
int make_http_soap_request(zval *this_ptr,
23-
zend_string *request,
24-
zend_string *location,
25-
char *soapaction,
26-
int soap_version,
22+
int make_http_soap_request(zval *this_ptr,
23+
zend_string *buf,
24+
zend_string *location,
25+
char *soapaction,
26+
int soap_version,
2727
const zend_string *uri_parser_class,
28-
zval *response);
28+
zval *return_value);
2929

3030
int proxy_authentication(zval* this_ptr, smart_str* soap_headers);
3131
int basic_authentication(zval* this_ptr, smart_str* soap_headers);

ext/standard/ftp_fopen_wrapper.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -986,7 +986,7 @@ static int php_stream_ftp_rename(php_stream_wrapper *wrapper, const char *url_fr
986986
return 0;
987987
}
988988

989-
tmp_uri = zend_string_init(url_to, strlen(url_to), 1);
989+
tmp_uri = zend_string_init(url_to, strlen(url_to), false);
990990
resource_to = php_uri_parse_to_struct(uri_handler, tmp_uri, URI_COMPONENT_READ_RAW, true);
991991
zend_string_release_ex(tmp_uri, 1);
992992
if (!resource_to) {

ext/uri/php_uri.c

Lines changed: 46 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,8 @@ PHPAPI uri_handler_t *php_uri_get_handler(const zend_string *uri_handler_name)
115115
return uri_handler_by_name(ZSTR_VAL(uri_handler_name), ZSTR_LEN(uri_handler_name));
116116
}
117117

118-
PHPAPI uri_internal_t *php_uri_parse(const uri_handler_t *uri_handler, zend_string *uri_str, bool silent)
118+
ZEND_ATTRIBUTE_NONNULL PHPAPI uri_internal_t *php_uri_parse(const uri_handler_t *uri_handler, zend_string *uri_str, bool silent)
119119
{
120-
ZEND_ASSERT(uri_handler != NULL);
121-
122-
if (ZSTR_LEN(uri_str) == 0) {
123-
return NULL;
124-
}
125-
126120
uri_internal_t *internal_uri = emalloc(sizeof(*internal_uri));
127121
internal_uri->handler = uri_handler;
128122
internal_uri->uri = uri_handler->parse_uri(uri_str, NULL, NULL, silent);
@@ -135,7 +129,7 @@ PHPAPI uri_internal_t *php_uri_parse(const uri_handler_t *uri_handler, zend_stri
135129
return internal_uri;
136130
}
137131

138-
static zend_result php_uri_get_property(const uri_internal_t *internal_uri, uri_property_name_t property_name, uri_component_read_mode_t read_mode, zval *zv)
132+
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_get_property(const uri_internal_t *internal_uri, uri_property_name_t property_name, uri_component_read_mode_t read_mode, zval *zv)
139133
{
140134
const uri_property_handler_t *property_handler = uri_property_handler_from_internal_uri(internal_uri, property_name);
141135
if (property_handler == NULL) {
@@ -145,56 +139,57 @@ static zend_result php_uri_get_property(const uri_internal_t *internal_uri, uri_
145139
return property_handler->read_func(internal_uri, read_mode, zv);
146140
}
147141

148-
PHPAPI zend_result php_uri_get_scheme(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
142+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_scheme(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
149143
{
150144
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_SCHEME, read_mode, zv);
151145
}
152146

153-
PHPAPI zend_result php_uri_get_username(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
147+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_username(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
154148
{
155149
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_USERNAME, read_mode, zv);
156150
}
157151

158-
PHPAPI zend_result php_uri_get_password(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
152+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_password(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
159153
{
160154
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_PASSWORD, read_mode, zv);
161155
}
162156

163-
PHPAPI zend_result php_uri_get_host(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
157+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_host(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
164158
{
165159
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_HOST, read_mode, zv);
166160
}
167161

168-
PHPAPI zend_result php_uri_get_port(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
162+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_port(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
169163
{
170164
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_PORT, read_mode, zv);
171165
}
172166

173-
PHPAPI zend_result php_uri_get_path(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
167+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_path(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
174168
{
175169
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_PATH, read_mode, zv);
176170
}
177171

178-
PHPAPI zend_result php_uri_get_query(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
172+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_query(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
179173
{
180174
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_QUERY, read_mode, zv);
181175
}
182176

183-
PHPAPI zend_result php_uri_get_fragment(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
177+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_fragment(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv)
184178
{
185179
return php_uri_get_property(internal_uri, URI_PROPERTY_NAME_FRAGMENT, read_mode, zv);
186180
}
187181

188-
PHPAPI void php_uri_free(uri_internal_t *internal_uri)
182+
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_free(uri_internal_t *internal_uri)
189183
{
190184
internal_uri->handler->free_uri(internal_uri->uri);
191185
internal_uri->uri = NULL;
192186
internal_uri->handler = NULL;
193187
efree(internal_uri);
194188
}
195189

196-
PHPAPI php_uri *php_uri_parse_to_struct(const uri_handler_t *uri_handler, zend_string *uri_str, uri_component_read_mode_t read_mode, bool silent)
197-
{
190+
ZEND_ATTRIBUTE_NONNULL PHPAPI php_uri *php_uri_parse_to_struct(
191+
const uri_handler_t *uri_handler, zend_string *uri_str, uri_component_read_mode_t read_mode, bool silent
192+
) {
198193
uri_internal_t *uri_internal = php_uri_parse(uri_handler, uri_str, silent);
199194
if (uri_internal == NULL) {
200195
return NULL;
@@ -207,97 +202,80 @@ PHPAPI php_uri *php_uri_parse_to_struct(const uri_handler_t *uri_handler, zend_s
207202

208203
result = php_uri_get_scheme(uri_internal, read_mode, &tmp);
209204
if (result == FAILURE) {
210-
php_uri_free(uri_internal);
211-
php_uri_struct_free(uri);
212-
return NULL;
205+
goto error;
213206
}
214-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
215-
uri->scheme = zend_string_copy(Z_STR(tmp));
216-
zval_ptr_dtor(&tmp);
207+
if (Z_TYPE(tmp) == IS_STRING) {
208+
uri->scheme = Z_STR(tmp);
217209
}
218210

219211
result = php_uri_get_username(uri_internal, read_mode, &tmp);
220212
if (result == FAILURE) {
221-
php_uri_free(uri_internal);
222-
php_uri_struct_free(uri);
223-
return NULL;
213+
goto error;
224214
}
225-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
226-
uri->user = zend_string_copy(Z_STR(tmp));
227-
zval_ptr_dtor(&tmp);
215+
if (Z_TYPE(tmp) == IS_STRING) {
216+
uri->user = Z_STR(tmp);
228217
}
229218

230219
result = php_uri_get_password(uri_internal, read_mode, &tmp);
231220
if (result == FAILURE) {
232-
php_uri_free(uri_internal);
233-
php_uri_struct_free(uri);
234-
return NULL;
221+
goto error;
235222
}
236-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
237-
uri->password = zend_string_copy(Z_STR(tmp));
238-
zval_ptr_dtor(&tmp);
223+
if (Z_TYPE(tmp) == IS_STRING) {
224+
uri->password = Z_STR(tmp);
239225
}
240226

241227
result = php_uri_get_host(uri_internal, read_mode, &tmp);
242228
if (result == FAILURE) {
243-
php_uri_free(uri_internal);
244-
php_uri_struct_free(uri);
245-
return NULL;
229+
goto error;
246230
}
247-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
248-
uri->host = zend_string_copy(Z_STR(tmp));
249-
zval_ptr_dtor(&tmp);
231+
if (Z_TYPE(tmp) == IS_STRING) {
232+
uri->host = Z_STR(tmp);
250233
}
251234

252235
result = php_uri_get_port(uri_internal, read_mode, &tmp);
253236
if (result == FAILURE) {
254-
php_uri_free(uri_internal);
255-
php_uri_struct_free(uri);
256-
return NULL;
237+
goto error;
257238
}
258-
if (Z_TYPE(tmp) == IS_LONG && Z_LVAL(tmp) >= 0) {
239+
if (Z_TYPE(tmp) == IS_LONG) {
259240
uri->port = Z_LVAL(tmp);
260241
}
261242

262243
result = php_uri_get_path(uri_internal, read_mode, &tmp);
263244
if (result == FAILURE) {
264-
php_uri_free(uri_internal);
265-
php_uri_struct_free(uri);
266-
return NULL;
245+
goto error;
267246
}
268-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
269-
uri->path = zend_string_copy(Z_STR(tmp));
270-
zval_ptr_dtor(&tmp);
247+
if (Z_TYPE(tmp) == IS_STRING) {
248+
uri->path = Z_STR(tmp);
271249
}
272250

273251
result = php_uri_get_query(uri_internal, read_mode, &tmp);
274252
if (result == FAILURE) {
275-
php_uri_free(uri_internal);
276-
php_uri_struct_free(uri);
277-
return NULL;
253+
goto error;
278254
}
279-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
280-
uri->query = zend_string_copy(Z_STR(tmp));
281-
zval_ptr_dtor(&tmp);
255+
if (Z_TYPE(tmp) == IS_STRING) {
256+
uri->query = Z_STR(tmp);
282257
}
283258

284259
result = php_uri_get_fragment(uri_internal, read_mode, &tmp);
285260
if (result == FAILURE) {
286-
php_uri_free(uri_internal);
287-
php_uri_struct_free(uri);
288-
return NULL;
261+
goto error;
289262
}
290-
if (Z_TYPE(tmp) == IS_STRING && Z_STRLEN(tmp) > 0) {
291-
uri->fragment = zend_string_copy(Z_STR(tmp));
292-
zval_ptr_dtor(&tmp);
263+
if (Z_TYPE(tmp) == IS_STRING) {
264+
uri->fragment = Z_STR(tmp);
293265
}
294266

295267
php_uri_free(uri_internal);
296268

297269
return uri;
270+
271+
error:
272+
php_uri_free(uri_internal);
273+
php_uri_struct_free(uri);
274+
275+
return NULL;
298276
}
299277

300-
PHPAPI void php_uri_struct_free(php_uri *uri)
278+
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_struct_free(php_uri *uri)
301279
{
302280
if (uri->scheme) {
303281
zend_string_release(uri->scheme);
@@ -354,7 +332,7 @@ static zend_result pass_errors_by_ref_and_free(zval *errors_zv, zval *errors)
354332
return SUCCESS;
355333
}
356334

357-
PHPAPI void php_uri_instantiate_uri(
335+
ZEND_ATTRIBUTE_NONNULL_ARGS(1, 2) PHPAPI void php_uri_instantiate_uri(
358336
INTERNAL_FUNCTION_PARAMETERS, const uri_handler_t *handler, const zend_string *uri_str, const zend_object *base_url_object,
359337
bool should_throw, bool should_update_this_object, zval *errors_zv
360338
) {
@@ -1024,7 +1002,7 @@ zend_object *uri_clone_obj_handler(zend_object *object)
10241002
return &new_uri_object->std;
10251003
}
10261004

1027-
PHPAPI void php_uri_implementation_set_object_handlers(zend_class_entry *ce, zend_object_handlers *object_handlers)
1005+
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_implementation_set_object_handlers(zend_class_entry *ce, zend_object_handlers *object_handlers)
10281006
{
10291007
ce->create_object = uri_create_object_handler;
10301008
ce->default_object_handlers = object_handlers;

ext/uri/php_uri.h

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,23 @@ typedef struct {
3434
} php_uri;
3535

3636
PHPAPI uri_handler_t *php_uri_get_handler(const zend_string *uri_handler_name);
37-
PHPAPI uri_internal_t *php_uri_parse(const uri_handler_t *uri_handler, zend_string *uri_str, bool silent);
38-
PHPAPI zend_result php_uri_get_scheme(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
39-
PHPAPI zend_result php_uri_get_username(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
40-
PHPAPI zend_result php_uri_get_password(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
41-
PHPAPI zend_result php_uri_get_host(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
42-
PHPAPI zend_result php_uri_get_port(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
43-
PHPAPI zend_result php_uri_get_path(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
44-
PHPAPI zend_result php_uri_get_query(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
45-
PHPAPI zend_result php_uri_get_fragment(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
46-
PHPAPI void php_uri_free(uri_internal_t *internal_uri);
47-
PHPAPI php_uri *php_uri_parse_to_struct(const uri_handler_t *uri_handler, zend_string *uri_str, uri_component_read_mode_t read_mode, bool silent);
48-
PHPAPI void php_uri_struct_free(php_uri *uri);
37+
ZEND_ATTRIBUTE_NONNULL PHPAPI uri_internal_t *php_uri_parse(const uri_handler_t *uri_handler, zend_string *uri_str, bool silent);
38+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_scheme(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
39+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_username(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
40+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_password(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
41+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_host(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
42+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_port(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
43+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_path(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
44+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_query(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
45+
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_fragment(const uri_internal_t *internal_uri, uri_component_read_mode_t read_mode, zval *zv);
46+
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_free(uri_internal_t *internal_uri);
47+
ZEND_ATTRIBUTE_NONNULL PHPAPI php_uri *php_uri_parse_to_struct(const uri_handler_t *uri_handler, zend_string *uri_str, uri_component_read_mode_t read_mode, bool silent);
48+
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_struct_free(php_uri *uri);
4949

50-
PHPAPI void php_uri_instantiate_uri(
50+
ZEND_ATTRIBUTE_NONNULL_ARGS(1, 2) PHPAPI void php_uri_instantiate_uri(
5151
INTERNAL_FUNCTION_PARAMETERS, const uri_handler_t *handler, const zend_string *uri_str, const zend_object *base_url_object,
5252
bool should_throw, bool should_update_this_object, zval *errors_zv
5353
);
54-
PHPAPI void php_uri_implementation_set_object_handlers(zend_class_entry *ce, zend_object_handlers *object_handlers);
54+
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_implementation_set_object_handlers(zend_class_entry *ce, zend_object_handlers *object_handlers);
5555

5656
#endif

0 commit comments

Comments
 (0)