Skip to content

Commit 6b20895

Browse files
committed
Use HashTable.u.flags instead of HashTable.arHash to check if HashTable is properly initialized
1 parent ee7decb commit 6b20895

File tree

7 files changed

+42
-42
lines changed

7 files changed

+42
-42
lines changed

ext/phar/dirstream.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ static int phar_dir_close(php_stream *stream, int close_handle) /* {{{ */
4444
{
4545
HashTable *data = (HashTable *)stream->abstract;
4646

47-
if (data && data->arHash) {
47+
if (data && data->u.flags) {
4848
zend_hash_destroy(data);
49-
data->arHash = 0;
49+
data->u.flags = 0;
5050
FREE_HASHTABLE(data);
5151
stream->abstract = NULL;
5252
}
@@ -361,7 +361,7 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path,
361361
return ret;
362362
}
363363

364-
if (!phar->manifest.arHash) {
364+
if (!phar->manifest.u.flags) {
365365
php_url_free(resource);
366366
return NULL;
367367
}

ext/phar/func_interceptors.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ PHAR_FUNC(phar_opendir) /* {{{ */
3333
goto skip_phar;
3434
}
3535

36-
if ((PHAR_GLOBALS->phar_fname_map.arHash && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
37-
&& !cached_phars.arHash) {
36+
if ((PHAR_GLOBALS->phar_fname_map.u.flags && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
37+
&& !cached_phars.u.flags) {
3838
goto skip_phar;
3939
}
4040

@@ -106,8 +106,8 @@ PHAR_FUNC(phar_file_get_contents) /* {{{ */
106106
goto skip_phar;
107107
}
108108

109-
if ((PHAR_GLOBALS->phar_fname_map.arHash && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
110-
&& !cached_phars.arHash) {
109+
if ((PHAR_GLOBALS->phar_fname_map.u.flags && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
110+
&& !cached_phars.u.flags) {
111111
goto skip_phar;
112112
}
113113

@@ -234,8 +234,8 @@ PHAR_FUNC(phar_readfile) /* {{{ */
234234
goto skip_phar;
235235
}
236236

237-
if ((PHAR_GLOBALS->phar_fname_map.arHash && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
238-
&& !cached_phars.arHash) {
237+
if ((PHAR_GLOBALS->phar_fname_map.u.flags && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
238+
&& !cached_phars.u.flags) {
239239
goto skip_phar;
240240
}
241241
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "p|br!", &filename, &filename_len, &use_include_path, &zcontext) == FAILURE) {
@@ -329,8 +329,8 @@ PHAR_FUNC(phar_fopen) /* {{{ */
329329
goto skip_phar;
330330
}
331331

332-
if ((PHAR_GLOBALS->phar_fname_map.arHash && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
333-
&& !cached_phars.arHash) {
332+
if ((PHAR_GLOBALS->phar_fname_map.u.flags && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
333+
&& !cached_phars.u.flags) {
334334
/* no need to check, include_path not even specified in fopen/ no active phars */
335335
goto skip_phar;
336336
}
@@ -895,8 +895,8 @@ PHAR_FUNC(phar_is_file) /* {{{ */
895895
goto skip_phar;
896896
}
897897

898-
if ((PHAR_GLOBALS->phar_fname_map.arHash && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
899-
&& !cached_phars.arHash) {
898+
if ((PHAR_GLOBALS->phar_fname_map.u.flags && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
899+
&& !cached_phars.u.flags) {
900900
goto skip_phar;
901901
}
902902
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "p", &filename, &filename_len) == FAILURE) {
@@ -962,8 +962,8 @@ PHAR_FUNC(phar_is_link) /* {{{ */
962962
goto skip_phar;
963963
}
964964

965-
if ((PHAR_GLOBALS->phar_fname_map.arHash && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
966-
&& !cached_phars.arHash) {
965+
if ((PHAR_GLOBALS->phar_fname_map.u.flags && !zend_hash_num_elements(&(PHAR_GLOBALS->phar_fname_map)))
966+
&& !cached_phars.u.flags) {
967967
goto skip_phar;
968968
}
969969
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "p", &filename, &filename_len) == FAILURE) {

ext/phar/phar.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ ZEND_INI_MH(phar_ini_modify_handler) /* {{{ */
8282

8383
if (entry->name->len == sizeof("phar.readonly")-1) {
8484
PHAR_G(readonly) = ini;
85-
if (PHAR_GLOBALS->request_init && PHAR_GLOBALS->phar_fname_map.arHash) {
85+
if (PHAR_GLOBALS->request_init && PHAR_GLOBALS->phar_fname_map.u.flags) {
8686
zend_hash_apply_with_argument(&(PHAR_GLOBALS->phar_fname_map), phar_set_writeable_bit, (void *)&ini);
8787
}
8888
} else {
@@ -146,9 +146,9 @@ static void phar_split_cache_list(void) /* {{{ */
146146
PHAR_GLOBALS->manifest_cached = 0;
147147
efree(tmp);
148148
zend_hash_destroy(&(PHAR_G(phar_fname_map)));
149-
PHAR_GLOBALS->phar_fname_map.arHash = 0;
149+
PHAR_GLOBALS->phar_fname_map.u.flags = 0;
150150
zend_hash_destroy(&(PHAR_G(phar_alias_map)));
151-
PHAR_GLOBALS->phar_alias_map.arHash = 0;
151+
PHAR_GLOBALS->phar_alias_map.u.flags = 0;
152152
zend_hash_destroy(&cached_phars);
153153
zend_hash_destroy(&cached_alias);
154154
zend_hash_graceful_reverse_destroy(&EG(regular_list));
@@ -173,8 +173,8 @@ static void phar_split_cache_list(void) /* {{{ */
173173
zend_hash_destroy(&cached_alias);
174174
cached_phars = PHAR_GLOBALS->phar_fname_map;
175175
cached_alias = PHAR_GLOBALS->phar_alias_map;
176-
PHAR_GLOBALS->phar_fname_map.arHash = 0;
177-
PHAR_GLOBALS->phar_alias_map.arHash = 0;
176+
PHAR_GLOBALS->phar_fname_map.u.flags = 0;
177+
PHAR_GLOBALS->phar_alias_map.u.flags = 0;
178178
zend_hash_graceful_reverse_destroy(&EG(regular_list));
179179
memset(&EG(regular_list), 0, sizeof(HashTable));
180180
efree(tmp);
@@ -220,19 +220,19 @@ void phar_destroy_phar_data(phar_archive_data *phar) /* {{{ */
220220
phar->signature = NULL;
221221
}
222222

223-
if (phar->manifest.arHash) {
223+
if (phar->manifest.u.flags) {
224224
zend_hash_destroy(&phar->manifest);
225-
phar->manifest.arHash = NULL;
225+
phar->manifest.u.flags = 0;
226226
}
227227

228-
if (phar->mounted_dirs.arHash) {
228+
if (phar->mounted_dirs.u.flags) {
229229
zend_hash_destroy(&phar->mounted_dirs);
230-
phar->mounted_dirs.arHash = NULL;
230+
phar->mounted_dirs.u.flags = 0;
231231
}
232232

233-
if (phar->virtual_dirs.arHash) {
233+
if (phar->virtual_dirs.u.flags) {
234234
zend_hash_destroy(&phar->virtual_dirs);
235-
phar->virtual_dirs.arHash = NULL;
235+
phar->virtual_dirs.u.flags = 0;
236236
}
237237

238238
if (Z_TYPE(phar->metadata) != IS_UNDEF) {
@@ -3487,11 +3487,11 @@ PHP_RSHUTDOWN_FUNCTION(phar) /* {{{ */
34873487
{
34883488
phar_release_functions();
34893489
zend_hash_destroy(&(PHAR_GLOBALS->phar_alias_map));
3490-
PHAR_GLOBALS->phar_alias_map.arHash = NULL;
3490+
PHAR_GLOBALS->phar_alias_map.u.flags = 0;
34913491
zend_hash_destroy(&(PHAR_GLOBALS->phar_fname_map));
3492-
PHAR_GLOBALS->phar_fname_map.arHash = NULL;
3492+
PHAR_GLOBALS->phar_fname_map.u.flags = 0;
34933493
zend_hash_destroy(&(PHAR_GLOBALS->phar_persist_map));
3494-
PHAR_GLOBALS->phar_persist_map.arHash = NULL;
3494+
PHAR_GLOBALS->phar_persist_map.u.flags = 0;
34953495
PHAR_GLOBALS->phar_SERVER_mung_list = 0;
34963496

34973497
if (PHAR_GLOBALS->cached_fp) {

ext/phar/phar_object.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ PHP_METHOD(Phar, mount)
517517
}
518518

519519
return;
520-
} else if (PHAR_GLOBALS->phar_fname_map.arHash && NULL != (pphar = zend_hash_str_find_ptr(&(PHAR_GLOBALS->phar_fname_map), fname, fname_len))) {
520+
} else if (PHAR_GLOBALS->phar_fname_map.u.flags && NULL != (pphar = zend_hash_str_find_ptr(&(PHAR_GLOBALS->phar_fname_map), fname, fname_len))) {
521521
goto carry_on;
522522
} else if (PHAR_G(manifest_cached) && NULL != (pphar = zend_hash_str_find_ptr(&cached_phars, fname, fname_len))) {
523523
if (SUCCESS == phar_copy_on_write(&pphar)) {

ext/phar/stream.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ php_url* phar_parse_url(php_stream_wrapper *wrapper, const char *filename, const
103103
if (mode[0] == 'w' || (mode[0] == 'r' && mode[1] == '+')) {
104104
phar_archive_data *pphar = NULL, *phar;
105105

106-
if (PHAR_GLOBALS->request_init && PHAR_GLOBALS->phar_fname_map.arHash && NULL == (pphar = zend_hash_str_find_ptr(&(PHAR_GLOBALS->phar_fname_map), arch, arch_len))) {
106+
if (PHAR_GLOBALS->request_init && PHAR_GLOBALS->phar_fname_map.u.flags && NULL == (pphar = zend_hash_str_find_ptr(&(PHAR_GLOBALS->phar_fname_map), arch, arch_len))) {
107107
pphar = NULL;
108108
}
109109
if (PHAR_G(readonly) && (!pphar || !pphar->is_data)) {
@@ -608,7 +608,7 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f
608608
php_url_free(resource);
609609
return SUCCESS;
610610
}
611-
if (!phar->manifest.arHash) {
611+
if (!phar->manifest.u.flags) {
612612
php_url_free(resource);
613613
return FAILURE;
614614
}
@@ -625,7 +625,7 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f
625625
return SUCCESS;
626626
}
627627
/* check for mounted directories */
628-
if (phar->mounted_dirs.arHash && zend_hash_num_elements(&phar->mounted_dirs)) {
628+
if (phar->mounted_dirs.u.flags && zend_hash_num_elements(&phar->mounted_dirs)) {
629629
zend_string *str_key;
630630

631631
ZEND_HASH_FOREACH_STR_KEY(&phar->mounted_dirs, str_key) {

ext/phar/util.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@ phar_entry_info * phar_open_jit(phar_archive_data *phar, phar_entry_info *entry,
925925

926926
PHP_PHAR_API int phar_resolve_alias(char *alias, int alias_len, char **filename, int *filename_len) /* {{{ */ {
927927
phar_archive_data *fd_ptr;
928-
if (PHAR_GLOBALS->phar_alias_map.arHash
928+
if (PHAR_GLOBALS->phar_alias_map.u.flags
929929
&& NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_GLOBALS->phar_alias_map), alias, alias_len))) {
930930
*filename = fd_ptr->fname;
931931
*filename_len = fd_ptr->fname_len;
@@ -1249,7 +1249,7 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, in
12491249
return NULL;
12501250
}
12511251

1252-
if (!phar->manifest.arHash) {
1252+
if (!phar->manifest.u.flags) {
12531253
return NULL;
12541254
}
12551255

@@ -1294,7 +1294,7 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, in
12941294
}
12951295
}
12961296

1297-
if (phar->mounted_dirs.arHash && zend_hash_num_elements(&phar->mounted_dirs)) {
1297+
if (phar->mounted_dirs.u.flags && zend_hash_num_elements(&phar->mounted_dirs)) {
12981298
zend_string *str_key;
12991299

13001300
ZEND_HASH_FOREACH_STR_KEY(&phar->mounted_dirs, str_key) {

ext/phar/zip.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -293,11 +293,11 @@ int phar_parse_zipfile(php_stream *fp, char *fname, int fname_len, char *alias,
293293
entry.is_persistent = mydata->is_persistent;
294294
#define PHAR_ZIP_FAIL_FREE(errmsg, save) \
295295
zend_hash_destroy(&mydata->manifest); \
296-
mydata->manifest.arHash = 0; \
296+
mydata->manifest.u.flags = 0; \
297297
zend_hash_destroy(&mydata->mounted_dirs); \
298-
mydata->mounted_dirs.arHash = 0; \
298+
mydata->mounted_dirs.u.flags = 0; \
299299
zend_hash_destroy(&mydata->virtual_dirs); \
300-
mydata->virtual_dirs.arHash = 0; \
300+
mydata->virtual_dirs.u.flags = 0; \
301301
php_stream_close(fp); \
302302
zval_dtor(&mydata->metadata); \
303303
if (mydata->signature) { \
@@ -315,11 +315,11 @@ int phar_parse_zipfile(php_stream *fp, char *fname, int fname_len, char *alias,
315315
return FAILURE;
316316
#define PHAR_ZIP_FAIL(errmsg) \
317317
zend_hash_destroy(&mydata->manifest); \
318-
mydata->manifest.arHash = 0; \
318+
mydata->manifest.u.flags = 0; \
319319
zend_hash_destroy(&mydata->mounted_dirs); \
320-
mydata->mounted_dirs.arHash = 0; \
320+
mydata->mounted_dirs.u.flags = 0; \
321321
zend_hash_destroy(&mydata->virtual_dirs); \
322-
mydata->virtual_dirs.arHash = 0; \
322+
mydata->virtual_dirs.u.flags = 0; \
323323
php_stream_close(fp); \
324324
zval_dtor(&mydata->metadata); \
325325
if (mydata->signature) { \

0 commit comments

Comments
 (0)