From ef52220617d9c9ab4d32ed3adeace06f513d22a9 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Wed, 27 Nov 2013 20:08:34 +0100 Subject: [PATCH] basic fixes for ext/phar --- ext/phar/dirstream.c | 34 ++--- ext/phar/dirstream.h | 2 +- ext/phar/func_interceptors.c | 76 +++++----- ext/phar/phar.c | 74 +++++----- ext/phar/phar_internal.h | 100 +++++++------- ext/phar/phar_object.c | 260 ++++++++++++++++++----------------- ext/phar/phar_path_check.c | 2 +- ext/phar/php_phar.h | 2 +- ext/phar/stream.c | 34 ++--- ext/phar/stream.h | 2 +- ext/phar/stub.h | 2 +- ext/phar/tar.c | 21 +-- ext/phar/util.c | 100 +++++++------- ext/phar/zip.c | 22 +-- 14 files changed, 370 insertions(+), 361 deletions(-) diff --git a/ext/phar/dirstream.c b/ext/phar/dirstream.c index 0f2580000dd..23a63efd194 100644 --- a/ext/phar/dirstream.c +++ b/ext/phar/dirstream.c @@ -58,7 +58,7 @@ static int phar_dir_close(php_stream *stream, int close_handle TSRMLS_DC) /* {{ /** * Used for seeking on a phar directory handle */ -static int phar_dir_seek(php_stream *stream, off_t offset, int whence, off_t *newoffset TSRMLS_DC) /* {{{ */ +static int phar_dir_seek(php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffset TSRMLS_DC) /* {{{ */ { HashTable *data = (HashTable *)stream->abstract; @@ -95,8 +95,8 @@ static size_t phar_dir_read(php_stream *stream, char *buf, size_t count TSRMLS_D size_t to_read; HashTable *data = (HashTable *)stream->abstract; char *str_key; - uint keylen; - ulong unused; + zend_str_size_uint keylen; + php_uint_t unused; if (HASH_KEY_NON_EXISTENT == zend_hash_get_current_key_ex(data, &str_key, &keylen, &unused, 0, NULL)) { return 0; @@ -141,7 +141,7 @@ static int phar_dir_flush(php_stream *stream TSRMLS_DC) /* {{{ */ * This is used to get a unique listing of virtual directories within a phar, * for iterating over opendir()ed phar directories. */ -static int phar_add_empty(HashTable *ht, char *arKey, uint nKeyLength) /* {{{ */ +static int phar_add_empty(HashTable *ht, char *arKey, zend_str_size_uint nKeyLength) /* {{{ */ { void *dummy = (char *) 1; @@ -180,10 +180,10 @@ static int phar_compare_dir_name(const void *a, const void *b TSRMLS_DC) /* {{{ static php_stream *phar_make_dirstream(char *dir, HashTable *manifest TSRMLS_DC) /* {{{ */ { HashTable *data; - int dirlen = strlen(dir); + zend_str_size_int dirlen = strlen(dir); char *entry, *found, *save, *str_key; - uint keylen; - ulong unused; + zend_str_size_uint keylen; + php_uint_t unused; ALLOC_HASHTABLE(data); zend_hash_init(data, 64, NULL, NULL, 0); @@ -303,8 +303,8 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, php_url *resource = NULL; php_stream *ret; char *internal_file, *error, *str_key; - uint keylen; - ulong unused; + zend_str_size_uint keylen; + php_uint_t unused; phar_archive_data *phar; phar_entry_info *entry = NULL; uint host_len; @@ -376,7 +376,7 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, php_url_free(resource); return phar_make_dirstream(internal_file, &phar->manifest TSRMLS_CC); } else { - int i_len = strlen(internal_file); + zend_str_size_int i_len = strlen(internal_file); /* search for directory */ zend_hash_internal_pointer_reset(&phar->manifest); @@ -412,9 +412,9 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mo phar_entry_info entry, *e; phar_archive_data *phar = NULL; char *error, *arch, *entry2; - int arch_len, entry_len; + zend_str_size_int arch_len, entry_len; php_url *resource = NULL; - uint host_len; + zend_str_size_uint host_len; /* pre-readonly check, we need to know if this is a data phar */ if (FAILURE == phar_split_fname(url_from, strlen(url_from), &arch, &arch_len, &entry2, &entry_len, 2, 2 TSRMLS_CC)) { @@ -544,13 +544,13 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options phar_entry_info *entry; phar_archive_data *phar = NULL; char *error, *arch, *entry2; - int arch_len, entry_len; + zend_str_size_int arch_len, entry_len; php_url *resource = NULL; - uint host_len; + zend_str_size_uint host_len; char *str_key; - uint key_len; - ulong unused; - uint path_len; + zend_str_size_uint key_len; + php_uint_t unused; + zend_str_size_uint path_len; /* pre-readonly check, we need to know if this is a data phar */ if (FAILURE == phar_split_fname(url, strlen(url), &arch, &arch_len, &entry2, &entry_len, 2, 2 TSRMLS_CC)) { diff --git a/ext/phar/dirstream.h b/ext/phar/dirstream.h index 030fe6536e9..26ce69a4edc 100644 --- a/ext/phar/dirstream.h +++ b/ext/phar/dirstream.h @@ -31,7 +31,7 @@ static size_t phar_dir_write(php_stream *stream, const char *buf, size_t count T static size_t phar_dir_read( php_stream *stream, char *buf, size_t count TSRMLS_DC); static int phar_dir_close(php_stream *stream, int close_handle TSRMLS_DC); static int phar_dir_flush(php_stream *stream TSRMLS_DC); -static int phar_dir_seek( php_stream *stream, off_t offset, int whence, off_t *newoffset TSRMLS_DC); +static int phar_dir_seek( php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffset TSRMLS_DC); #else php_stream* phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC); #endif diff --git a/ext/phar/func_interceptors.c b/ext/phar/func_interceptors.c index 00cb92ff133..5b5ff21e00e 100644 --- a/ext/phar/func_interceptors.c +++ b/ext/phar/func_interceptors.c @@ -26,7 +26,7 @@ PHAR_FUNC(phar_opendir) /* {{{ */ { char *filename; - int filename_len; + zend_str_size_int filename_len; zval *zcontext = NULL; if (!PHAR_G(intercepted)) { @@ -38,13 +38,13 @@ PHAR_FUNC(phar_opendir) /* {{{ */ goto skip_phar; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|z", &filename, &filename_len, &zcontext) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "P|z", &filename, &filename_len, &zcontext) == FAILURE) { return; } if (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://")) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; + zend_str_size_int arch_len, entry_len, fname_len; fname = (char*)zend_get_executed_filename(TSRMLS_C); /* we are checking for existence of a file within the relative path. Chances are good that this is @@ -94,13 +94,13 @@ skip_phar: PHAR_FUNC(phar_file_get_contents) /* {{{ */ { char *filename; - int filename_len; + zend_str_size_int filename_len; char *contents; zend_bool use_include_path = 0; php_stream *stream; - int len; - long offset = -1; - long maxlen = PHP_STREAM_COPY_ALL; + zend_str_size_int len; + php_int_t offset = -1; + php_int_t maxlen = PHP_STREAM_COPY_ALL; zval *zcontext = NULL; if (!PHAR_G(intercepted)) { @@ -113,13 +113,13 @@ PHAR_FUNC(phar_file_get_contents) /* {{{ */ } /* Parse arguments */ - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "p|br!ll", &filename, &filename_len, &use_include_path, &zcontext, &offset, &maxlen) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "P|br!ii", &filename, &filename_len, &use_include_path, &zcontext, &offset, &maxlen) == FAILURE) { goto skip_phar; } if (use_include_path || (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://"))) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; + zend_str_size_int arch_len, entry_len, fname_len; php_stream_context *context = NULL; fname = (char*)zend_get_executed_filename(TSRMLS_C); @@ -230,7 +230,7 @@ skip_phar: PHAR_FUNC(phar_readfile) /* {{{ */ { char *filename; - int filename_len; + zend_str_size_int filename_len; int size = 0; zend_bool use_include_path = 0; zval *zcontext = NULL; @@ -244,12 +244,12 @@ PHAR_FUNC(phar_readfile) /* {{{ */ && !cached_phars.arBuckets) { goto skip_phar; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "p|br!", &filename, &filename_len, &use_include_path, &zcontext) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "P|br!", &filename, &filename_len, &use_include_path, &zcontext) == FAILURE) { goto skip_phar; } if (use_include_path || (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://"))) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; + zend_str_size_int arch_len, entry_len, fname_len; php_stream_context *context = NULL; char *name; phar_archive_data *phar; @@ -326,7 +326,7 @@ skip_phar: PHAR_FUNC(phar_fopen) /* {{{ */ { char *filename, *mode; - int filename_len, mode_len; + zend_str_size_int filename_len, mode_len; zend_bool use_include_path = 0; zval *zcontext = NULL; php_stream *stream; @@ -340,12 +340,12 @@ PHAR_FUNC(phar_fopen) /* {{{ */ /* no need to check, include_path not even specified in fopen/ no active phars */ goto skip_phar; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "ps|br", &filename, &filename_len, &mode, &mode_len, &use_include_path, &zcontext) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "PS|br", &filename, &filename_len, &mode, &mode_len, &use_include_path, &zcontext) == FAILURE) { goto skip_phar; } if (use_include_path || (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://"))) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; + zend_str_size_int arch_len, entry_len, fname_len; php_stream_context *context = NULL; char *name; phar_archive_data *phar; @@ -439,7 +439,7 @@ skip_phar: /* {{{ php_stat */ -static void phar_fancy_stat(struct stat *stat_sb, int type, zval *return_value TSRMLS_DC) +static void phar_fancy_stat(php_stat_t *stat_sb, int type, zval *return_value TSRMLS_DC) { zval *stat_dev, *stat_ino, *stat_mode, *stat_nlink, *stat_uid, *stat_gid, *stat_rdev, *stat_size, *stat_atime, *stat_mtime, *stat_ctime, *stat_blksize, *stat_blocks; @@ -483,32 +483,32 @@ static void phar_fancy_stat(struct stat *stat_sb, int type, zval *return_value T switch (type) { case FS_PERMS: - RETURN_LONG((long)stat_sb->st_mode); + RETURN_LONG((php_int_t)stat_sb->st_mode); case FS_INODE: - RETURN_LONG((long)stat_sb->st_ino); + RETURN_LONG((php_int_t)stat_sb->st_ino); case FS_SIZE: - RETURN_LONG((long)stat_sb->st_size); + RETURN_LONG((php_int_t)stat_sb->st_size); case FS_OWNER: - RETURN_LONG((long)stat_sb->st_uid); + RETURN_LONG((php_int_t)stat_sb->st_uid); case FS_GROUP: - RETURN_LONG((long)stat_sb->st_gid); + RETURN_LONG((php_int_t)stat_sb->st_gid); case FS_ATIME: #ifdef NETWARE - RETURN_LONG((long)stat_sb->st_atime.tv_sec); + RETURN_LONG((php_int_t)stat_sb->st_atime.tv_sec); #else - RETURN_LONG((long)stat_sb->st_atime); + RETURN_LONG((php_int_t)stat_sb->st_atime); #endif case FS_MTIME: #ifdef NETWARE - RETURN_LONG((long)stat_sb->st_mtime.tv_sec); + RETURN_LONG((php_int_t)stat_sb->st_mtime.tv_sec); #else - RETURN_LONG((long)stat_sb->st_mtime); + RETURN_LONG((php_int_t)stat_sb->st_mtime); #endif case FS_CTIME: #ifdef NETWARE - RETURN_LONG((long)stat_sb->st_ctime.tv_sec); + RETURN_LONG((php_int_t)stat_sb->st_ctime.tv_sec); #else - RETURN_LONG((long)stat_sb->st_ctime); + RETURN_LONG((php_int_t)stat_sb->st_ctime); #endif case FS_TYPE: if (S_ISLNK(stat_sb->st_mode)) { @@ -616,8 +616,8 @@ static void phar_file_stat(const char *filename, php_stat_len filename_length, i if (!IS_ABSOLUTE_PATH(filename, filename_length) && !strstr(filename, "://")) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; - struct stat sb = {0}; + zend_str_size_int arch_len, entry_len, fname_len; + php_stat_t sb = {0}; phar_entry_info *data = NULL; phar_archive_data *phar; @@ -684,7 +684,7 @@ splitted: goto statme_baby; } else { char *save; - int save_len; + zend_str_size_int save_len; notfound: efree(entry); @@ -811,9 +811,9 @@ void fname(INTERNAL_FUNCTION_PARAMETERS) { \ PHAR_G(orig)(INTERNAL_FUNCTION_PARAM_PASSTHRU); \ } else { \ char *filename; \ - int filename_len; \ + zend_str_size_int filename_len; \ \ - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p", &filename, &filename_len) == FAILURE) { \ + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "P", &filename, &filename_len) == FAILURE) { \ return; \ } \ \ @@ -895,7 +895,7 @@ PharFileFunction(phar_is_dir, FS_IS_DIR, orig_is_dir) PHAR_FUNC(phar_is_file) /* {{{ */ { char *filename; - int filename_len; + zend_str_size_int filename_len; if (!PHAR_G(intercepted)) { goto skip_phar; @@ -905,12 +905,12 @@ PHAR_FUNC(phar_is_file) /* {{{ */ && !cached_phars.arBuckets) { goto skip_phar; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "p", &filename, &filename_len) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "P", &filename, &filename_len) == FAILURE) { goto skip_phar; } if (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://")) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; + zend_str_size_int arch_len, entry_len, fname_len; fname = (char*)zend_get_executed_filename(TSRMLS_C); /* we are checking for existence of a file within the relative path. Chances are good that this is @@ -962,7 +962,7 @@ skip_phar: PHAR_FUNC(phar_is_link) /* {{{ */ { char *filename; - int filename_len; + zend_str_size_int filename_len; if (!PHAR_G(intercepted)) { goto skip_phar; @@ -972,12 +972,12 @@ PHAR_FUNC(phar_is_link) /* {{{ */ && !cached_phars.arBuckets) { goto skip_phar; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "p", &filename, &filename_len) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "P", &filename, &filename_len) == FAILURE) { goto skip_phar; } if (!IS_ABSOLUTE_PATH(filename, filename_len) && !strstr(filename, "://")) { char *arch, *entry, *fname; - int arch_len, entry_len, fname_len; + zend_str_size_int arch_len, entry_len, fname_len; fname = (char*)zend_get_executed_filename(TSRMLS_C); /* we are checking for existence of a file within the relative path. Chances are good that this is diff --git a/ext/phar/phar.c b/ext/phar/phar.c index d4716bca914..27621565206 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -27,7 +27,7 @@ static void destroy_phar_data(void *pDest); ZEND_DECLARE_MODULE_GLOBALS(phar) -char *(*phar_save_resolve_path)(const char *filename, int filename_len TSRMLS_DC); +char *(*phar_save_resolve_path)(const char *filename, zend_str_size_int filename_len TSRMLS_DC); /** * set's phar->is_writeable based on the current INI value @@ -526,7 +526,7 @@ void phar_entry_remove(phar_entry_data *idata, char **error TSRMLS_DC) /* {{{ */ /** * Open an already loaded phar */ -int phar_open_parsed_phar(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_open_parsed_phar(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { phar_archive_data *phar; #ifdef PHP_WIN32 @@ -601,7 +601,7 @@ int phar_open_parsed_phar(char *fname, int fname_len, char *alias, int alias_len * * data is the serialized zval */ -int phar_parse_metadata(char **buffer, zval **metadata, int zip_metadata_len TSRMLS_DC) /* {{{ */ +int phar_parse_metadata(char **buffer, zval **metadata, zend_str_size_int zip_metadata_len TSRMLS_DC) /* {{{ */ { const unsigned char *p; php_uint32 buf_len; @@ -657,15 +657,15 @@ int phar_parse_metadata(char **buffer, zval **metadata, int zip_metadata_len TSR * This is used by phar_open_from_filename to process the manifest, but can be called * directly. */ -static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char *alias, int alias_len, long halt_offset, phar_archive_data** pphar, php_uint32 compression, char **error TSRMLS_DC) /* {{{ */ +static int phar_parse_pharfile(php_stream *fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, php_int_t halt_offset, phar_archive_data** pphar, php_uint32 compression, char **error TSRMLS_DC) /* {{{ */ { char b32[4], *buffer, *endbuffer, *savebuf; phar_archive_data *mydata = NULL; phar_entry_info entry; php_uint32 manifest_len, manifest_count, manifest_flags, manifest_index, tmp_len, sig_flags; php_uint16 manifest_ver; - long offset; - int sig_len, register_alias = 0, temp_alias = 0; + php_int_t offset; + zend_str_size_int sig_len, register_alias = 0, temp_alias = 0; char *signature = NULL; if (pphar) { @@ -766,7 +766,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char /* be ignored on reading because it is being generated anyways. */ if (manifest_flags & PHAR_HDR_SIGNATURE) { char sig_buf[8], *sig_ptr = sig_buf; - off_t read_len; + zend_off_t read_len; size_t end_of_phar; if (-1 == php_stream_seek(fp, -8, SEEK_END) @@ -787,7 +787,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char case PHAR_SIG_OPENSSL: { php_uint32 signature_len; char *sig; - off_t whence; + zend_off_t whence; /* we store the signature followed by the signature length */ if (-1 == php_stream_seek(fp, -12, SEEK_CUR) @@ -1239,11 +1239,11 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char /** * Create or open a phar for writing */ -int phar_open_or_create_filename(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_open_or_create_filename(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { const char *ext_str, *z; char *my_error; - int ext_len; + zend_str_size_int ext_len; phar_archive_data **test, *unused = NULL; test = &unused; @@ -1316,7 +1316,7 @@ check_file: } /* }}} */ -int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_create_or_parse_filename(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { phar_archive_data *mydata; php_stream *fp; @@ -1470,7 +1470,7 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a * that the manifest is proper, then pass it to phar_parse_pharfile(). SUCCESS * or FAILURE is returned and pphar is set to a pointer to the phar's manifest */ -int phar_open_from_filename(char *fname, int fname_len, char *alias, int alias_len, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_open_from_filename(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { php_stream *fp; char *actual; @@ -1527,7 +1527,7 @@ int phar_open_from_filename(char *fname, int fname_len, char *alias, int alias_l } /* }}}*/ -static inline char *phar_strnstr(const char *buf, int buf_len, const char *search, int search_len) /* {{{ */ +static inline char *phar_strnstr(const char *buf, zend_str_size_int buf_len, const char *search, zend_str_size_int search_len) /* {{{ */ { const char *c; int so_far = 0; @@ -1561,7 +1561,7 @@ static inline char *phar_strnstr(const char *buf, int buf_len, const char *searc * that the manifest is proper, then pass it to phar_parse_pharfile(). SUCCESS * or FAILURE is returned and pphar is set to a pointer to the phar's manifest */ -static int phar_open_from_fp(php_stream* fp, char *fname, int fname_len, char *alias, int alias_len, int options, phar_archive_data** pphar, int is_data, char **error TSRMLS_DC) /* {{{ */ +static int phar_open_from_fp(php_stream* fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int options, phar_archive_data** pphar, int is_data, char **error TSRMLS_DC) /* {{{ */ { const char token[] = "__HALT_COMPILER();"; const char zip_magic[] = "PK\x03\x04"; @@ -1570,9 +1570,9 @@ static int phar_open_from_fp(php_stream* fp, char *fname, int fname_len, char *a char *pos, test = '\0'; const int window_size = 1024; char buffer[1024 + sizeof(token)]; /* a 1024 byte window + the size of the halt_compiler token (moving window) */ - const long readsize = sizeof(buffer) - sizeof(token); - const long tokenlen = sizeof(token) - 1; - long halt_offset; + const php_int_t readsize = sizeof(buffer) - sizeof(token); + const php_int_t tokenlen = sizeof(token) - 1; + php_int_t halt_offset; size_t got; php_uint32 compression = PHAR_FILE_COMPRESSED_NONE; @@ -1733,7 +1733,7 @@ static int phar_open_from_fp(php_stream* fp, char *fname, int fname_len, char *a * if not, check to see if its dirname() exists (i.e. "/path/to") and is a directory * succeed if we are creating the file, otherwise fail. */ -static int phar_analyze_path(const char *fname, const char *ext, int ext_len, int for_create TSRMLS_DC) /* {{{ */ +static int phar_analyze_path(const char *fname, const char *ext, zend_str_size_int ext_len, int for_create TSRMLS_DC) /* {{{ */ { php_stream_statbuf ssb; char *realpath; @@ -1835,7 +1835,7 @@ static int phar_analyze_path(const char *fname, const char *ext, int ext_len, in /* }}} */ /* check for ".phar" in extension */ -static int phar_check_str(const char *fname, const char *ext_str, int ext_len, int executable, int for_create TSRMLS_DC) /* {{{ */ +static int phar_check_str(const char *fname, const char *ext_str, zend_str_size_int ext_len, int executable, int for_create TSRMLS_DC) /* {{{ */ { char test[51]; const char *pos; @@ -1890,7 +1890,7 @@ static int phar_check_str(const char *fname, const char *ext_str, int ext_len, i * the last parameter should be set to tell the thing to assume that filename is the full path, and only to check the * extension rules, not to iterate. */ -int phar_detect_phar_fname_ext(const char *filename, int filename_len, const char **ext_str, int *ext_len, int executable, int for_create, int is_complete TSRMLS_DC) /* {{{ */ +int phar_detect_phar_fname_ext(const char *filename, zend_str_size_int filename_len, const char **ext_str, zend_str_size_int *ext_len, int executable, int for_create, int is_complete TSRMLS_DC) /* {{{ */ { const char *pos, *slash; @@ -1955,8 +1955,8 @@ woohoo: } } else { char *str_key; - uint keylen; - ulong unused; + zend_str_size_uint keylen; + php_uint_t unused; for (zend_hash_internal_pointer_reset(&(PHAR_GLOBALS->phar_fname_map)); HASH_KEY_NON_EXISTENT != zend_hash_get_current_key_ex(&(PHAR_GLOBALS->phar_fname_map), &str_key, &keylen, &unused, 0, NULL); @@ -2119,13 +2119,13 @@ char *tsrm_strtok_r(char *s, const char *delim, char **last) /* {{{ */ /** * Remove .. and . references within a phar filename */ -char *phar_fix_filepath(char *path, int *new_len, int use_cwd TSRMLS_DC) /* {{{ */ +char *phar_fix_filepath(char *path, zend_str_size_int *new_len, int use_cwd TSRMLS_DC) /* {{{ */ { char newpath[MAXPATHLEN]; - int newpath_len; + zend_str_size_int newpath_len; char *ptr; char *tok; - int ptr_length, path_length = *new_len; + zend_str_size_int ptr_length, path_length = *new_len; if (PHAR_G(cwd_len) && use_cwd && path_length > 2 && path[0] == '.' && path[1] == '/') { newpath_len = PHAR_G(cwd_len); @@ -2227,13 +2227,13 @@ last_time: * * This is used by phar_parse_url() */ -int phar_split_fname(const char *filename, int filename_len, char **arch, int *arch_len, char **entry, int *entry_len, int executable, int for_create TSRMLS_DC) /* {{{ */ +int phar_split_fname(const char *filename, zend_str_size_int filename_len, char **arch, zend_str_size_int *arch_len, char **entry, zend_str_size_int *entry_len, int executable, int for_create TSRMLS_DC) /* {{{ */ { const char *ext_str; #ifdef PHP_WIN32 char *save; #endif - int ext_len; + zend_str_size_int ext_len; if (!strncasecmp(filename, "phar://", 7)) { filename += 7; @@ -2294,12 +2294,12 @@ int phar_split_fname(const char *filename, int filename_len, char **arch, int *a * Invoked when a user calls Phar::mapPhar() from within an executing .phar * to set up its manifest directly */ -int phar_open_executed_filename(char *alias, int alias_len, char **error TSRMLS_DC) /* {{{ */ +int phar_open_executed_filename(char *alias, zend_str_size_int alias_len, char **error TSRMLS_DC) /* {{{ */ { char *fname; zval *halt_constant; php_stream *fp; - int fname_len; + zend_str_size_int fname_len; char *actual = NULL; int ret; @@ -2376,7 +2376,7 @@ int phar_open_executed_filename(char *alias, int alias_len, char **error TSRMLS_ int phar_postprocess_file(phar_entry_data *idata, php_uint32 crc32, char **error, int process_zip TSRMLS_DC) /* {{{ */ { php_uint32 crc = ~0; - int len = idata->internal_file->uncompressed_filesize; + zend_str_size_int len = idata->internal_file->uncompressed_filesize; php_stream *fp = idata->fp; phar_entry_info *entry = idata->internal_file; @@ -2486,7 +2486,7 @@ static int phar_flush_clean_deleted_apply(void *data TSRMLS_DC) /* {{{ */ char *phar_create_default_stub(const char *index_php, const char *web_index, size_t *len, char **error TSRMLS_DC) /* {{{ */ { char *stub = NULL; - int index_len, web_len; + zend_str_size_int index_len, web_len; size_t dummy; if (!len) { @@ -2535,7 +2535,7 @@ char *phar_create_default_stub(const char *index_php, const char *web_index, siz * user_stub contains either a string, or a resource pointer, if len is a negative length. * user_stub and len should be both 0 if the default or existing stub should be used */ -int phar_flush(phar_archive_data *phar, char *user_stub, long len, int convert, char **error TSRMLS_DC) /* {{{ */ +int phar_flush(phar_archive_data *phar, char *user_stub, php_int_t len, int convert, char **error TSRMLS_DC) /* {{{ */ { char halt_stub[] = "__HALT_COMPILER();"; char *newstub, *tmp; @@ -2543,8 +2543,8 @@ int phar_flush(phar_archive_data *phar, char *user_stub, long len, int convert, int halt_offset, restore_alias_len, global_flags = 0, closeoldfile; char *pos, has_dirs = 0; char manifest[18], entry_buffer[24]; - off_t manifest_ftell; - long offset; + zend_off_t manifest_ftell; + php_int_t offset; size_t wrote; php_uint32 manifest_len, mytime, loc, new_manifest_count; php_uint32 newcrc32; @@ -3157,7 +3157,7 @@ int phar_flush(phar_archive_data *phar, char *user_stub, long len, int convert, #endif default: { char *digest = NULL; - int digest_len; + zend_str_size_int digest_len; if (FAILURE == phar_create_signature(phar, newfile, &digest, &digest_len, error TSRMLS_CC)) { if (error) { @@ -3303,7 +3303,7 @@ static size_t phar_zend_stream_fsizer(void *handle TSRMLS_DC) /* {{{ */ zend_op_array *(*phar_orig_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC); #define phar_orig_zend_open zend_stream_open_function -static char *phar_resolve_path(const char *filename, int filename_len TSRMLS_DC) +static char *phar_resolve_path(const char *filename, zend_str_size_int filename_len TSRMLS_DC) { return phar_find_in_include_path((char *) filename, filename_len, NULL TSRMLS_CC); } @@ -3519,7 +3519,7 @@ void phar_request_initialize(TSRMLS_D) /* {{{ */ PHP_RSHUTDOWN_FUNCTION(phar) /* {{{ */ { - int i; + php_int_t i; PHAR_GLOBALS->request_ends = 1; diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h index 359f25b4c63..36542b99087 100644 --- a/ext/phar/phar_internal.h +++ b/ext/phar/phar_internal.h @@ -179,15 +179,15 @@ ZEND_BEGIN_MODULE_GLOBALS(phar) void (*orig_stat)(INTERNAL_FUNCTION_PARAMETERS); /* used for includes with . in them inside front controller */ char* cwd; - int cwd_len; + zend_str_size_int cwd_len; int cwd_init; char *openssl_privatekey; int openssl_privatekey_len; /* phar_get_archive cache */ char* last_phar_name; - int last_phar_name_len; + zend_str_size_int last_phar_name_len; char* last_alias; - int last_alias_len; + zend_str_size_int last_alias_len; phar_archive_data* last_phar; HashTable mime_types; ZEND_END_MODULE_GLOBALS(phar) @@ -244,16 +244,16 @@ typedef struct _phar_entry_info { /* when changing compression, save old flags in case fp is NULL */ php_uint32 old_flags; zval *metadata; - int metadata_len; /* only used for cached manifests */ + zend_str_size_int metadata_len; /* only used for cached manifests */ php_uint32 filename_len; char *filename; enum phar_fp_type fp_type; /* offset within original phar file of the file contents */ - long offset_abs; + php_int_t offset_abs; /* offset within fp of the file contents */ - long offset; + php_int_t offset; /* offset within original phar file of the file header (for zip-based/tar-based) */ - long header_offset; + php_int_t header_offset; php_stream *fp; php_stream *cfp; int fp_refcount; @@ -290,9 +290,9 @@ struct _phar_archive_data { int fname_len; /* for phar_detect_fname_ext, this stores the location of the file extension within fname */ char *ext; - int ext_len; + zend_str_size_int ext_len; char *alias; - int alias_len; + zend_str_size_int alias_len; char version[12]; size_t internal_file_start; size_t halt_offset; @@ -309,10 +309,10 @@ struct _phar_archive_data { php_stream *ufp; int refcount; php_uint32 sig_flags; - int sig_len; + zend_str_size_int sig_len; char *signature; zval *metadata; - int metadata_len; /* only used for cached manifests */ + zend_str_size_int metadata_len; /* only used for cached manifests */ uint phar_pos; /* if 1, then this alias was manually specified by the user and is not a permanent alias */ unsigned int is_temporary_alias:1; @@ -334,7 +334,7 @@ struct _phar_archive_data { typedef struct _phar_entry_fp_info { enum phar_fp_type fp_type; /* offset within fp of the file contents */ - long offset; + php_int_t offset; } phar_entry_fp_info; struct _phar_entry_fp { @@ -415,7 +415,7 @@ static inline void phar_set_pharufp(phar_archive_data *phar, php_stream *fp TSRM PHAR_GLOBALS->cached_fp[phar->phar_pos].ufp = fp; } -static inline void phar_set_fp_type(phar_entry_info *entry, enum phar_fp_type type, off_t offset TSRMLS_DC) +static inline void phar_set_fp_type(phar_entry_info *entry, enum phar_fp_type type, zend_off_t offset TSRMLS_DC) { phar_entry_fp_info *data; @@ -437,7 +437,7 @@ static inline enum phar_fp_type phar_get_fp_type(phar_entry_info *entry TSRMLS_D return PHAR_GLOBALS->cached_fp[entry->phar->phar_pos].manifest[entry->manifest_pos].fp_type; } -static inline off_t phar_get_fp_offset(phar_entry_info *entry TSRMLS_DC) +static inline zend_off_t phar_get_fp_offset(phar_entry_info *entry TSRMLS_DC) { if (!entry->is_persistent) { return entry->offset; @@ -456,7 +456,7 @@ static inline off_t phar_get_fp_offset(phar_entry_info *entry TSRMLS_DC) typedef struct _phar_mime_type { char *mime; - int len; + zend_str_size_int len; /* one of PHAR_MIME_* */ char type; } phar_mime_type; @@ -466,9 +466,9 @@ typedef struct _phar_entry_data { phar_archive_data *phar; php_stream *fp; /* stream position proxy, allows multiple open streams referring to the same fp */ - off_t position; + zend_off_t position; /* for copies of the phar fp, defines where 0 is */ - off_t zero; + zend_off_t zero; unsigned int for_write:1; unsigned int is_zip:1; unsigned int is_tar:1; @@ -508,7 +508,7 @@ BEGIN_EXTERN_C() #ifdef PHP_WIN32 char *tsrm_strtok_r(char *s, const char *delim, char **last); -static inline void phar_unixify_path_separators(char *path, int path_len) +static inline void phar_unixify_path_separators(char *path, zend_str_size_int path_len) { char *s; @@ -523,7 +523,7 @@ static inline void phar_unixify_path_separators(char *path, int path_len) /** * validate an alias, returns 1 for success, 0 for failure */ -static inline int phar_validate_alias(const char *alias, int alias_len) /* {{{ */ +static inline int phar_validate_alias(const char *alias, zend_str_size_int alias_len) /* {{{ */ { return !(memchr(alias, '/', alias_len) || memchr(alias, '\\', alias_len) || memchr(alias, ':', alias_len) || memchr(alias, ';', alias_len) || memchr(alias, '\n', alias_len) || memchr(alias, '\r', alias_len)); @@ -533,7 +533,7 @@ static inline int phar_validate_alias(const char *alias, int alias_len) /* {{{ * static inline void phar_set_inode(phar_entry_info *entry TSRMLS_DC) /* {{{ */ { char tmp[MAXPATHLEN]; - int tmp_len; + zend_str_size_int tmp_len; tmp_len = entry->filename_len + entry->phar->fname_len; memcpy(tmp, entry->phar->fname, entry->phar->fname_len); @@ -549,30 +549,30 @@ void phar_destroy_phar_data(phar_archive_data *phar TSRMLS_DC); int phar_open_entry_file(phar_archive_data *phar, phar_entry_info *entry, char **error TSRMLS_DC); int phar_postprocess_file(phar_entry_data *idata, php_uint32 crc32, char **error, int process_zip TSRMLS_DC); -int phar_open_from_filename(char *fname, int fname_len, char *alias, int alias_len, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_open_or_create_filename(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_open_executed_filename(char *alias, int alias_len, char **error TSRMLS_DC); -int phar_free_alias(phar_archive_data *phar, char *alias, int alias_len TSRMLS_DC); -int phar_get_archive(phar_archive_data **archive, char *fname, int fname_len, char *alias, int alias_len, char **error TSRMLS_DC); -int phar_open_parsed_phar(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_type, char *sig, int sig_len, char *fname, char **signature, int *signature_len, char **error TSRMLS_DC); -int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signature, int *signature_length, char **error TSRMLS_DC); +int phar_open_from_filename(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int options, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_open_or_create_filename(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_create_or_parse_filename(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_open_executed_filename(char *alias, zend_str_size_int alias_len, char **error TSRMLS_DC); +int phar_free_alias(phar_archive_data *phar, char *alias, zend_str_size_int alias_len TSRMLS_DC); +int phar_get_archive(phar_archive_data **archive, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, char **error TSRMLS_DC); +int phar_open_parsed_phar(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_type, char *sig, zend_str_size_int sig_len, char *fname, char **signature, zend_str_size_int *signature_len, char **error TSRMLS_DC); +int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signature, zend_str_size_int *signature_length, char **error TSRMLS_DC); /* utility functions */ char *phar_create_default_stub(const char *index_php, const char *web_index, size_t *len, char **error TSRMLS_DC); char *phar_decompress_filter(phar_entry_info * entry, int return_unknown); char *phar_compress_filter(phar_entry_info * entry, int return_unknown); -void phar_remove_virtual_dirs(phar_archive_data *phar, char *filename, int filename_len TSRMLS_DC); -void phar_add_virtual_dirs(phar_archive_data *phar, char *filename, int filename_len TSRMLS_DC); -int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, char *path, int path_len TSRMLS_DC); +void phar_remove_virtual_dirs(phar_archive_data *phar, char *filename, zend_str_size_int filename_len TSRMLS_DC); +void phar_add_virtual_dirs(phar_archive_data *phar, char *filename, zend_str_size_int filename_len TSRMLS_DC); +int phar_mount_entry(phar_archive_data *phar, char *filename, zend_str_size_int filename_len, char *path, zend_str_size_int path_len TSRMLS_DC); char *phar_find_in_include_path(char *file, int file_len, phar_archive_data **pphar TSRMLS_DC); -char *phar_fix_filepath(char *path, int *new_len, int use_cwd TSRMLS_DC); +char *phar_fix_filepath(char *path, zend_str_size_int *new_len, int use_cwd TSRMLS_DC); phar_entry_info * phar_open_jit(phar_archive_data *phar, phar_entry_info *entry, char **error TSRMLS_DC); -int phar_parse_metadata(char **buffer, zval **metadata, int zip_metadata_len TSRMLS_DC); +int phar_parse_metadata(char **buffer, zval **metadata, zend_str_size_int zip_metadata_len TSRMLS_DC); void destroy_phar_manifest_entry(void *pDest); -int phar_seek_efp(phar_entry_info *entry, off_t offset, int whence, off_t position, int follow_links TSRMLS_DC); +int phar_seek_efp(phar_entry_info *entry, zend_off_t offset, int whence, zend_off_t position, int follow_links TSRMLS_DC); php_stream *phar_get_efp(phar_entry_info *entry, int follow_links TSRMLS_DC); int phar_copy_entry_fp(phar_entry_info *source, phar_entry_info *dest, char **error TSRMLS_DC); int phar_open_entry_fp(phar_entry_info *entry, char **error, int follow_links TSRMLS_DC); @@ -584,17 +584,17 @@ int phar_copy_on_write(phar_archive_data **pphar TSRMLS_DC); /* tar functions in tar.c */ int phar_is_tar(char *buf, char *fname); -int phar_parse_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, int alias_len, phar_archive_data** pphar, int is_data, php_uint32 compression, char **error TSRMLS_DC); -int phar_open_or_create_tar(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_tar_flush(phar_archive_data *phar, char *user_stub, long len, int defaultstub, char **error TSRMLS_DC); +int phar_parse_tarfile(php_stream* fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, phar_archive_data** pphar, int is_data, php_uint32 compression, char **error TSRMLS_DC); +int phar_open_or_create_tar(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_tar_flush(phar_archive_data *phar, char *user_stub, php_int_t len, int defaultstub, char **error TSRMLS_DC); /* zip functions in zip.c */ -int phar_parse_zipfile(php_stream *fp, char *fname, int fname_len, char *alias, int alias_len, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_open_or_create_zip(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); -int phar_zip_flush(phar_archive_data *archive, char *user_stub, long len, int defaultstub, char **error TSRMLS_DC); +int phar_parse_zipfile(php_stream *fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_open_or_create_zip(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC); +int phar_zip_flush(phar_archive_data *archive, char *user_stub, php_int_t len, int defaultstub, char **error TSRMLS_DC); #ifdef PHAR_MAIN -static int phar_open_from_fp(php_stream* fp, char *fname, int fname_len, char *alias, int alias_len, int options, phar_archive_data** pphar, int is_data, char **error TSRMLS_DC); +static int phar_open_from_fp(php_stream* fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int options, phar_archive_data** pphar, int is_data, char **error TSRMLS_DC); extern php_stream_wrapper php_stream_phar_wrapper; #else extern HashTable cached_phars; @@ -604,13 +604,13 @@ extern HashTable cached_alias; int phar_archive_delref(phar_archive_data *phar TSRMLS_DC); int phar_entry_delref(phar_entry_data *idata TSRMLS_DC); -phar_entry_info *phar_get_entry_info(phar_archive_data *phar, char *path, int path_len, char **error, int security TSRMLS_DC); -phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, int path_len, char dir, char **error, int security TSRMLS_DC); -phar_entry_data *phar_get_or_create_entry_data(char *fname, int fname_len, char *path, int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC); -int phar_get_entry_data(phar_entry_data **ret, char *fname, int fname_len, char *path, int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC); -int phar_flush(phar_archive_data *archive, char *user_stub, long len, int convert, char **error TSRMLS_DC); -int phar_detect_phar_fname_ext(const char *filename, int filename_len, const char **ext_str, int *ext_len, int executable, int for_create, int is_complete TSRMLS_DC); -int phar_split_fname(const char *filename, int filename_len, char **arch, int *arch_len, char **entry, int *entry_len, int executable, int for_create TSRMLS_DC); +phar_entry_info *phar_get_entry_info(phar_archive_data *phar, char *path, zend_str_size_int path_len, char **error, int security TSRMLS_DC); +phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, zend_str_size_int path_len, char dir, char **error, int security TSRMLS_DC); +phar_entry_data *phar_get_or_create_entry_data(char *fname, zend_str_size_int fname_len, char *path, zend_str_size_int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC); +int phar_get_entry_data(phar_entry_data **ret, char *fname, zend_str_size_int fname_len, char *path, zend_str_size_int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC); +int phar_flush(phar_archive_data *archive, char *user_stub, php_int_t len, int convert, char **error TSRMLS_DC); +int phar_detect_phar_fname_ext(const char *filename, zend_str_size_int filename_len, const char **ext_str, zend_str_size_int *ext_len, int executable, int for_create, int is_complete TSRMLS_DC); +int phar_split_fname(const char *filename, zend_str_size_int filename_len, char **arch, zend_str_size_int *arch_len, char **entry, zend_str_size_int *entry_len, int executable, int for_create TSRMLS_DC); typedef enum { pcr_use_query, @@ -624,7 +624,7 @@ typedef enum { pcr_err_empty_entry } phar_path_check_result; -phar_path_check_result phar_path_check(char **p, int *len, const char **error); +phar_path_check_result phar_path_check(char **p, zend_str_size_int *len, const char **error); END_EXTERN_C() diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 7c11a48f9cc..a3b0355c20e 100644 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -56,12 +56,12 @@ static int phar_file_type(HashTable *mimes, char *file, char **mime_type TSRMLS_ } /* }}} */ -static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char *basename, int request_uri_len TSRMLS_DC) /* {{{ */ +static void phar_mung_server_vars(char *fname, char *entry, zend_str_size_int entry_len, char *basename, zend_str_size_int request_uri_len TSRMLS_DC) /* {{{ */ { HashTable *_SERVER; zval **stuff; char *path_info; - int basename_len = strlen(basename); + zend_str_size_int basename_len = strlen(basename); int code; zval *temp; @@ -75,9 +75,9 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char /* PATH_INFO and PATH_TRANSLATED should always be munged */ if (SUCCESS == zend_hash_find(_SERVER, "PATH_INFO", sizeof("PATH_INFO"), (void **) &stuff)) { path_info = Z_STRVAL_PP(stuff); - code = Z_STRLEN_PP(stuff); + code = Z_STRSIZE_PP(stuff); - if (Z_STRLEN_PP(stuff) > entry_len && !memcmp(Z_STRVAL_PP(stuff), entry, entry_len)) { + if (Z_STRSIZE_PP(stuff) > entry_len && !memcmp(Z_STRVAL_PP(stuff), entry, entry_len)) { ZVAL_STRINGL(*stuff, Z_STRVAL_PP(stuff) + entry_len, request_uri_len, 1); MAKE_STD_ZVAL(temp); @@ -89,8 +89,8 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char if (SUCCESS == zend_hash_find(_SERVER, "PATH_TRANSLATED", sizeof("PATH_TRANSLATED"), (void **) &stuff)) { path_info = Z_STRVAL_PP(stuff); - code = Z_STRLEN_PP(stuff); - Z_STRLEN_PP(stuff) = spprintf(&(Z_STRVAL_PP(stuff)), 4096, "phar://%s%s", fname, entry); + code = Z_STRSIZE_PP(stuff); + Z_STRSIZE_PP(stuff) = spprintf(&(Z_STRVAL_PP(stuff)), 4096, "phar://%s%s", fname, entry); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); @@ -105,10 +105,10 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_REQUEST_URI) { if (SUCCESS == zend_hash_find(_SERVER, "REQUEST_URI", sizeof("REQUEST_URI"), (void **) &stuff)) { path_info = Z_STRVAL_PP(stuff); - code = Z_STRLEN_PP(stuff); + code = Z_STRSIZE_PP(stuff); - if (Z_STRLEN_PP(stuff) > basename_len && !memcmp(Z_STRVAL_PP(stuff), basename, basename_len)) { - ZVAL_STRINGL(*stuff, Z_STRVAL_PP(stuff) + basename_len, Z_STRLEN_PP(stuff) - basename_len, 1); + if (Z_STRSIZE_PP(stuff) > basename_len && !memcmp(Z_STRVAL_PP(stuff), basename, basename_len)) { + ZVAL_STRINGL(*stuff, Z_STRVAL_PP(stuff) + basename_len, Z_STRSIZE_PP(stuff) - basename_len, 1); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); @@ -121,10 +121,10 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_PHP_SELF) { if (SUCCESS == zend_hash_find(_SERVER, "PHP_SELF", sizeof("PHP_SELF"), (void **) &stuff)) { path_info = Z_STRVAL_PP(stuff); - code = Z_STRLEN_PP(stuff); + code = Z_STRSIZE_PP(stuff); - if (Z_STRLEN_PP(stuff) > basename_len && !memcmp(Z_STRVAL_PP(stuff), basename, basename_len)) { - ZVAL_STRINGL(*stuff, Z_STRVAL_PP(stuff) + basename_len, Z_STRLEN_PP(stuff) - basename_len, 1); + if (Z_STRSIZE_PP(stuff) > basename_len && !memcmp(Z_STRVAL_PP(stuff), basename, basename_len)) { + ZVAL_STRINGL(*stuff, Z_STRVAL_PP(stuff) + basename_len, Z_STRSIZE_PP(stuff) - basename_len, 1); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); @@ -137,7 +137,7 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_SCRIPT_NAME) { if (SUCCESS == zend_hash_find(_SERVER, "SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &stuff)) { path_info = Z_STRVAL_PP(stuff); - code = Z_STRLEN_PP(stuff); + code = Z_STRSIZE_PP(stuff); ZVAL_STRINGL(*stuff, entry, entry_len, 1); MAKE_STD_ZVAL(temp); @@ -150,8 +150,8 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_SCRIPT_FILENAME) { if (SUCCESS == zend_hash_find(_SERVER, "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME"), (void **) &stuff)) { path_info = Z_STRVAL_PP(stuff); - code = Z_STRLEN_PP(stuff); - Z_STRLEN_PP(stuff) = spprintf(&(Z_STRVAL_PP(stuff)), 4096, "phar://%s%s", fname, entry); + code = Z_STRSIZE_PP(stuff); + Z_STRSIZE_PP(stuff) = spprintf(&(Z_STRVAL_PP(stuff)), 4096, "phar://%s%s", fname, entry); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); @@ -162,19 +162,20 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char } /* }}} */ -static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char *mime_type, int code, char *entry, int entry_len, char *arch, char *basename, char *ru, int ru_len TSRMLS_DC) /* {{{ */ +static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char *mime_type, int code, char *entry, zend_str_size_int entry_len, char *arch, char *basename, char *ru, zend_str_size_int ru_len TSRMLS_DC) /* {{{ */ { char *name = NULL, buf[8192]; const char *cwd; zend_syntax_highlighter_ini syntax_highlighter_ini; sapi_header_line ctr = {0}; size_t got; - int dummy = 1, name_len; + int dummy = 1; + zend_str_size_int name_len; zend_file_handle file_handle; zend_op_array *new_op_array; zval *result = NULL; php_stream *fp; - off_t position; + zend_off_t position; switch (code) { case PHAR_MIME_PHPS: @@ -230,7 +231,7 @@ static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char if (got > 0) { PHPWRITE(buf, got); position += got; - if (position == (off_t) info->uncompressed_filesize) { + if (position == (zend_off_t) info->uncompressed_filesize) { break; } } @@ -330,7 +331,7 @@ static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char } /* }}} */ -static void phar_do_403(char *entry, int entry_len TSRMLS_DC) /* {{{ */ +static void phar_do_403(char *entry, zend_str_size_int entry_len TSRMLS_DC) /* {{{ */ { sapi_header_line ctr = {0}; @@ -345,7 +346,7 @@ static void phar_do_403(char *entry, int entry_len TSRMLS_DC) /* {{{ */ } /* }}} */ -static void phar_do_404(phar_archive_data *phar, char *fname, int fname_len, char *f404, int f404_len, char *entry, int entry_len TSRMLS_DC) /* {{{ */ +static void phar_do_404(phar_archive_data *phar, char *fname, zend_str_size_int fname_len, char *f404, zend_str_size_int f404_len, char *entry, zend_str_size_int entry_len TSRMLS_DC) /* {{{ */ { sapi_header_line ctr = {0}; phar_entry_info *info; @@ -373,10 +374,10 @@ static void phar_do_404(phar_archive_data *phar, char *fname, int fname_len, cha /* post-process REQUEST_URI and retrieve the actual request URI. This is for cases like http://localhost/blah.phar/path/to/file.php/extra/stuff which calls "blah.phar" file "path/to/file.php" with PATH_INFO "/extra/stuff" */ -static void phar_postprocess_ru_web(char *fname, int fname_len, char **entry, int *entry_len, char **ru, int *ru_len TSRMLS_DC) /* {{{ */ +static void phar_postprocess_ru_web(char *fname, zend_str_size_int fname_len, char **entry, zend_str_size_int *entry_len, char **ru, zend_str_size_int *ru_len TSRMLS_DC) /* {{{ */ { char *e = *entry + 1, *u = NULL, *u1 = NULL, *saveu = NULL; - int e_len = *entry_len - 1, u_len = 0; + zend_str_size_int e_len = *entry_len - 1, u_len = 0; phar_archive_data **pphar = NULL; /* we already know we can retrieve the phar if we reach here */ @@ -441,7 +442,7 @@ static void phar_postprocess_ru_web(char *fname, int fname_len, char **entry, in PHP_METHOD(Phar, running) { char *fname, *arch, *entry; - int fname_len, arch_len, entry_len; + zend_str_size_int fname_len, arch_len, entry_len; zend_bool retphar = 1; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &retphar) == FAILURE) { @@ -475,10 +476,10 @@ PHP_METHOD(Phar, running) PHP_METHOD(Phar, mount) { char *fname, *arch = NULL, *entry = NULL, *path, *actual; - int fname_len, arch_len, entry_len, path_len, actual_len; + zend_str_size_int fname_len, arch_len, entry_len, path_len, actual_len; phar_archive_data **pphar; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &path, &path_len, &actual, &actual_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &path, &path_len, &actual, &actual_len) == FAILURE) { return; } @@ -565,14 +566,15 @@ PHP_METHOD(Phar, webPhar) { zval *mimeoverride = NULL, *rewrite = NULL; char *alias = NULL, *error, *index_php = NULL, *f404 = NULL, *ru = NULL; - int alias_len = 0, ret, f404_len = 0, free_pathinfo = 0, ru_len = 0; + zend_str_size_int alias_len = 0, f404_len = 0, ru_len = 0; char *fname, *path_info, *mime_type = NULL, *entry, *pt; const char *basename; - int fname_len, entry_len, code, index_php_len = 0, not_cgi; + zend_str_size_int fname_len, entry_len, index_php_len = 0; + int code, not_cgi, ret, free_pathinfo = 0; phar_archive_data *phar = NULL; phar_entry_info *info = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!s!saz", &alias, &alias_len, &index_php, &index_php_len, &f404, &f404_len, &mimeoverride, &rewrite) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|S!S!Saz", &alias, &alias_len, &index_php, &index_php_len, &f404, &f404_len, &mimeoverride, &rewrite) == FAILURE) { return; } @@ -620,11 +622,11 @@ PHP_METHOD(Phar, webPhar) if (SUCCESS == zend_hash_find(_server, "PATH_INFO", sizeof("PATH_INFO"), (void**)&z_path_info) && IS_STRING == Z_TYPE_PP(z_path_info)) { - entry_len = Z_STRLEN_PP(z_path_info); + entry_len = Z_STRSIZE_PP(z_path_info); entry = estrndup(Z_STRVAL_PP(z_path_info), entry_len); - path_info = emalloc(Z_STRLEN_PP(z_script_name) + entry_len + 1); - memcpy(path_info, Z_STRVAL_PP(z_script_name), Z_STRLEN_PP(z_script_name)); - memcpy(path_info + Z_STRLEN_PP(z_script_name), entry, entry_len + 1); + path_info = emalloc(Z_STRSIZE_PP(z_script_name) + entry_len + 1); + memcpy(path_info, Z_STRVAL_PP(z_script_name), Z_STRSIZE_PP(z_script_name)); + memcpy(path_info + Z_STRSIZE_PP(z_script_name), entry, entry_len + 1); free_pathinfo = 1; } else { entry_len = 0; @@ -632,7 +634,7 @@ PHP_METHOD(Phar, webPhar) path_info = Z_STRVAL_PP(z_script_name); } - pt = estrndup(Z_STRVAL_PP(z_script_name), Z_STRLEN_PP(z_script_name)); + pt = estrndup(Z_STRVAL_PP(z_script_name), Z_STRSIZE_PP(z_script_name)); } else { char *testit; @@ -725,11 +727,11 @@ PHP_METHOD(Phar, webPhar) efree(entry); if (fci.retval_ptr_ptr != &retval_ptr) { - entry = estrndup(Z_STRVAL_PP(fci.retval_ptr_ptr), Z_STRLEN_PP(fci.retval_ptr_ptr)); - entry_len = Z_STRLEN_PP(fci.retval_ptr_ptr); + entry = estrndup(Z_STRVAL_PP(fci.retval_ptr_ptr), Z_STRSIZE_PP(fci.retval_ptr_ptr)); + entry_len = Z_STRSIZE_PP(fci.retval_ptr_ptr); } else { entry = Z_STRVAL_P(retval_ptr); - entry_len = Z_STRLEN_P(retval_ptr); + entry_len = Z_STRSIZE_P(retval_ptr); } break; @@ -911,11 +913,11 @@ PHP_METHOD(Phar, mungServer) return; } - if (Z_STRLEN_PP(data) == sizeof("PHP_SELF")-1 && !strncmp(Z_STRVAL_PP(data), "PHP_SELF", sizeof("PHP_SELF")-1)) { + if (Z_STRSIZE_PP(data) == sizeof("PHP_SELF")-1 && !strncmp(Z_STRVAL_PP(data), "PHP_SELF", sizeof("PHP_SELF")-1)) { PHAR_GLOBALS->phar_SERVER_mung_list |= PHAR_MUNG_PHP_SELF; } - if (Z_STRLEN_PP(data) == sizeof("REQUEST_URI")-1) { + if (Z_STRSIZE_PP(data) == sizeof("REQUEST_URI")-1) { if (!strncmp(Z_STRVAL_PP(data), "REQUEST_URI", sizeof("REQUEST_URI")-1)) { PHAR_GLOBALS->phar_SERVER_mung_list |= PHAR_MUNG_REQUEST_URI; } @@ -924,7 +926,7 @@ PHP_METHOD(Phar, mungServer) } } - if (Z_STRLEN_PP(data) == sizeof("SCRIPT_FILENAME")-1 && !strncmp(Z_STRVAL_PP(data), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) { + if (Z_STRSIZE_PP(data) == sizeof("SCRIPT_FILENAME")-1 && !strncmp(Z_STRVAL_PP(data), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) { PHAR_GLOBALS->phar_SERVER_mung_list |= PHAR_MUNG_SCRIPT_FILENAME; } } @@ -956,10 +958,10 @@ PHP_METHOD(Phar, interceptFileFuncs) PHP_METHOD(Phar, createDefaultStub) { char *index = NULL, *webindex = NULL, *stub, *error; - int index_len = 0, webindex_len = 0; + zend_str_size_int index_len = 0, webindex_len = 0; size_t stub_len; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ss", &index, &index_len, &webindex, &webindex_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|SS", &index, &index_len, &webindex, &webindex_len) == FAILURE) { return; } @@ -979,10 +981,10 @@ PHP_METHOD(Phar, createDefaultStub) PHP_METHOD(Phar, mapPhar) { char *alias = NULL, *error; - int alias_len = 0; - long dataoffset = 0; + zend_str_size_int alias_len = 0; + php_int_t dataoffset = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!l", &alias, &alias_len, &dataoffset) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|S!i", &alias, &alias_len, &dataoffset) == FAILURE) { return; } @@ -1001,9 +1003,9 @@ PHP_METHOD(Phar, mapPhar) PHP_METHOD(Phar, loadPhar) { char *fname, *alias = NULL, *error; - int fname_len, alias_len = 0; + zend_str_size_int fname_len, alias_len = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!", &fname, &fname_len, &alias, &alias_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|S!", &fname, &fname_len, &alias, &alias_len) == FAILURE) { return; } @@ -1032,9 +1034,9 @@ PHP_METHOD(Phar, apiVersion) * Returns whether phar extension supports compression using zlib/bzip2 */ PHP_METHOD(Phar, canCompress) { - long method = 0; + php_int_t method = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &method) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|i", &method) == FAILURE) { return; } @@ -1079,10 +1081,11 @@ PHP_METHOD(Phar, isValidPharFilename) { char *fname; const char *ext_str; - int fname_len, ext_len, is_executable; + zend_str_size_int fname_len, ext_len; + int is_executable; zend_bool executable = 1; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &fname, &fname_len, &executable) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|b", &fname, &fname_len, &executable) == FAILURE) { return; } @@ -1141,9 +1144,10 @@ PHP_METHOD(Phar, __construct) zend_throw_exception_ex(zend_exception_get_default(TSRMLS_C), 0 TSRMLS_CC, "Cannot instantiate Phar object without SPL extension"); #else char *fname, *alias = NULL, *error, *arch = NULL, *entry = NULL, *save_fname; - int fname_len, alias_len = 0, arch_len, entry_len, is_data; - long flags = SPL_FILE_DIR_SKIPDOTS|SPL_FILE_DIR_UNIXPATHS; - long format = 0; + zend_str_size_int fname_len, alias_len = 0, arch_len, entry_len; + int is_data; + php_int_t flags = SPL_FILE_DIR_SKIPDOTS|SPL_FILE_DIR_UNIXPATHS; + php_int_t format = 0; phar_archive_object *phar_obj; phar_archive_data *phar_data; zval *zobj = getThis(), arg1, arg2; @@ -1153,11 +1157,11 @@ PHP_METHOD(Phar, __construct) is_data = instanceof_function(Z_OBJCE_P(zobj), phar_ce_data TSRMLS_CC); if (is_data) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ls!l", &fname, &fname_len, &flags, &alias, &alias_len, &format) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|iS!i", &fname, &fname_len, &flags, &alias, &alias_len, &format) == FAILURE) { return; } } else { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ls!", &fname, &fname_len, &flags, &alias, &alias_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|iS!", &fname, &fname_len, &flags, &alias, &alias_len) == FAILURE) { return; } } @@ -1322,10 +1326,10 @@ PHP_METHOD(Phar, getSupportedCompression) PHP_METHOD(Phar, unlinkArchive) { char *fname, *error, *zname, *arch, *entry; - int fname_len, zname_len, arch_len, entry_len; + zend_str_size_int fname_len, zname_len, arch_len, entry_len; phar_archive_data *phar; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &fname, &fname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &fname, &fname_len) == FAILURE) { RETURN_FALSE; } @@ -1419,7 +1423,7 @@ static int phar_build(zend_object_iterator *iter, void *puser TSRMLS_DC) /* {{{ zval **value; zend_bool close_fp = 1; struct _phar_t *p_obj = (struct _phar_t*) puser; - uint str_key_len, base_len = p_obj->l, fname_len; + zend_str_size_uint str_key_len, base_len = p_obj->l, fname_len; phar_entry_data *data; php_stream *fp; size_t contents_len; @@ -1466,7 +1470,7 @@ static int phar_build(zend_object_iterator *iter, void *puser TSRMLS_DC) /* {{{ return ZEND_HASH_APPLY_STOP; } - str_key_len = Z_STRLEN(key); + str_key_len = Z_STRSIZE(key); str_key = estrndup(Z_STRVAL(key), str_key_len); save = str_key; @@ -1535,7 +1539,7 @@ static int phar_build(zend_object_iterator *iter, void *puser TSRMLS_DC) /* {{{ } fname = Z_STRVAL_PP(value); - fname_len = Z_STRLEN_PP(value); + fname_len = Z_STRSIZE_PP(value); phar_spl_fileinfo: if (base_len) { @@ -1594,7 +1598,7 @@ phar_spl_fileinfo: return ZEND_HASH_APPLY_STOP; } - str_key_len = Z_STRLEN(key); + str_key_len = Z_STRSIZE(key); str_key = estrndup(Z_STRVAL(key), str_key_len); save = str_key; @@ -1742,7 +1746,7 @@ after_open_fp: PHP_METHOD(Phar, buildFromDirectory) { char *dir, *error, *regex = NULL; - int dir_len, regex_len = 0; + zend_str_size_int dir_len, regex_len = 0; zend_bool apply_reg = 0; zval arg, arg2, *iter, *iteriter, *regexiter = NULL; struct _phar_t pass; @@ -1755,7 +1759,7 @@ PHP_METHOD(Phar, buildFromDirectory) return; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &dir, &dir_len, ®ex, ®ex_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|S", &dir, &dir_len, ®ex, ®ex_len) == FAILURE) { RETURN_FALSE; } @@ -1881,7 +1885,7 @@ PHP_METHOD(Phar, buildFromIterator) { zval *obj; char *error; - uint base_len = 0; + zend_str_size_uint base_len = 0; char *base = NULL; struct _phar_t pass; @@ -1893,7 +1897,7 @@ PHP_METHOD(Phar, buildFromIterator) return; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|s", &obj, zend_ce_traversable, &base, &base_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|S", &obj, zend_ce_traversable, &base, &base_len) == FAILURE) { RETURN_FALSE; } @@ -1950,10 +1954,10 @@ PHP_METHOD(Phar, count) */ PHP_METHOD(Phar, isFileFormat) { - long type; + php_int_t type; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &type) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &type) == FAILURE) { RETURN_FALSE; } @@ -2026,8 +2030,8 @@ static zval *phar_rename_archive(phar_archive_data *phar, char *ext, zend_bool c zend_class_entry *ce; char *error; const char *pcr_error; - int ext_len = ext ? strlen(ext) : 0; - int oldname_len; + zend_str_size_int ext_len = ext ? strlen(ext) : 0; + zend_str_size_int oldname_len; phar_archive_data **pphar = NULL; php_stream_statbuf ssb; @@ -2354,14 +2358,15 @@ no_copy: PHP_METHOD(Phar, convertToExecutable) { char *ext = NULL; - int is_data, ext_len = 0; + int is_data; + zend_str_size_int ext_len = 0; php_uint32 flags; zval *ret; /* a number that is not 0, 1 or 2 (Which is also Greg's birthday, so there) */ - long format = 9021976, method = 9021976; + php_int_t format = 9021976, method = 9021976; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|lls", &format, &method, &ext, &ext_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|iiS", &format, &method, &ext, &ext_len) == FAILURE) { return; } @@ -2457,14 +2462,15 @@ PHP_METHOD(Phar, convertToExecutable) PHP_METHOD(Phar, convertToData) { char *ext = NULL; - int is_data, ext_len = 0; + int is_data; + zend_str_size_int ext_len = 0; php_uint32 flags; zval *ret; /* a number that is not 0, 1 or 2 (Which is also Greg's birthday so there) */ - long format = 9021976, method = 9021976; + php_int_t format = 9021976, method = 9021976; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|lls", &format, &method, &ext, &ext_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|iiS", &format, &method, &ext, &ext_len) == FAILURE) { return; } @@ -2609,7 +2615,7 @@ PHP_METHOD(Phar, isWritable) PHP_METHOD(Phar, delete) { char *fname; - int fname_len; + zend_str_size_int fname_len; char *error; phar_entry_info *entry; PHAR_ARCHIVE_OBJECT(); @@ -2620,7 +2626,7 @@ PHP_METHOD(Phar, delete) return; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &fname, &fname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &fname, &fname_len) == FAILURE) { RETURN_FALSE; } @@ -2694,7 +2700,8 @@ PHP_METHOD(Phar, setAlias) { char *alias, *error, *oldalias; phar_archive_data **fd_ptr; - int alias_len, oldalias_len, old_temp, readd = 0; + zend_str_size_int alias_len, oldalias_len; + int old_temp, readd = 0; PHAR_ARCHIVE_OBJECT(); @@ -2719,7 +2726,7 @@ PHP_METHOD(Phar, setAlias) RETURN_FALSE; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &alias, &alias_len) == SUCCESS) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &alias, &alias_len) == SUCCESS) { if (alias_len == phar_obj->arc.archive->alias_len && memcmp(phar_obj->arc.archive->alias, alias, alias_len) == 0) { RETURN_TRUE; } @@ -2869,8 +2876,8 @@ PHP_METHOD(Phar, setStub) { zval *zstub; char *stub, *error; - int stub_len; - long len = -1; + zend_str_size_int stub_len; + php_int_t len = -1; php_stream *stream; PHAR_ARCHIVE_OBJECT(); @@ -2891,7 +2898,7 @@ PHP_METHOD(Phar, setStub) return; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &zstub, &len) == SUCCESS) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "r|i", &zstub, &len) == SUCCESS) { if ((php_stream_from_zval_no_verify(stream, &zstub)) != NULL) { if (len > 0) { len = -len; @@ -2912,7 +2919,7 @@ PHP_METHOD(Phar, setStub) zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Cannot change stub, unable to read from input stream"); } - } else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &stub, &stub_len) == SUCCESS) { + } else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &stub, &stub_len) == SUCCESS) { if (phar_obj->arc.archive->is_persistent && FAILURE == phar_copy_on_write(&(phar_obj->arc.archive) TSRMLS_CC)) { zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "phar \"%s\" is persistent, unable to copy on write", phar_obj->arc.archive->fname); return; @@ -2947,7 +2954,8 @@ PHP_METHOD(Phar, setStub) PHP_METHOD(Phar, setDefaultStub) { char *index = NULL, *webindex = NULL, *error = NULL, *stub = NULL; - int index_len = 0, webindex_len = 0, created_stub = 0; + zend_str_size_int index_len = 0, webindex_len = 0; + int created_stub = 0; size_t stub_len = 0; PHAR_ARCHIVE_OBJECT(); @@ -2962,7 +2970,7 @@ PHP_METHOD(Phar, setDefaultStub) return; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!s", &index, &index_len, &webindex, &webindex_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|S!S", &index, &index_len, &webindex, &webindex_len) == FAILURE) { RETURN_FALSE; } @@ -3020,9 +3028,9 @@ PHP_METHOD(Phar, setDefaultStub) */ PHP_METHOD(Phar, setSignatureAlgorithm) { - long algo; + php_int_t algo; char *error, *key = NULL; - int key_len = 0; + zend_str_size_int key_len = 0; PHAR_ARCHIVE_OBJECT(); @@ -3032,7 +3040,7 @@ PHP_METHOD(Phar, setSignatureAlgorithm) return; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "l|s", &algo, &key, &key_len) != SUCCESS) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "i|S", &algo, &key, &key_len) != SUCCESS) { return; } @@ -3192,14 +3200,14 @@ static int pharobj_cancompress(HashTable *manifest TSRMLS_DC) /* {{{ */ */ PHP_METHOD(Phar, compress) { - long method; + php_int_t method; char *ext = NULL; - int ext_len = 0; + zend_str_size_int ext_len = 0; php_uint32 flags; zval *ret; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|s", &method, &ext, &ext_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i|S", &method, &ext, &ext_len) == FAILURE) { return; } @@ -3262,11 +3270,11 @@ PHP_METHOD(Phar, compress) PHP_METHOD(Phar, decompress) { char *ext = NULL; - int ext_len = 0; + zend_str_size_int ext_len = 0; zval *ret; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext, &ext_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|S", &ext, &ext_len) == FAILURE) { return; } @@ -3305,10 +3313,10 @@ PHP_METHOD(Phar, compressFiles) { char *error; php_uint32 flags; - long method; + php_int_t method; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &method) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &method) == FAILURE) { return; } @@ -3427,12 +3435,12 @@ PHP_METHOD(Phar, copy) { char *oldfile, *newfile, *error; const char *pcr_error; - int oldfile_len, newfile_len; + zend_str_size_int oldfile_len, newfile_len; phar_entry_info *oldentry, newentry = {0}, *temp; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &oldfile, &oldfile_len, &newfile, &newfile_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &oldfile, &oldfile_len, &newfile, &newfile_len) == FAILURE) { return; } @@ -3533,12 +3541,12 @@ PHP_METHOD(Phar, copy) PHP_METHOD(Phar, offsetExists) { char *fname; - int fname_len; + zend_str_size_int fname_len; phar_entry_info *entry; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &fname, &fname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &fname, &fname_len) == FAILURE) { return; } @@ -3570,12 +3578,12 @@ PHP_METHOD(Phar, offsetExists) PHP_METHOD(Phar, offsetGet) { char *fname, *error; - int fname_len; + zend_str_size_int fname_len; zval *zfname; phar_entry_info *entry; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &fname, &fname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &fname, &fname_len) == FAILURE) { return; } @@ -3714,7 +3722,7 @@ static void phar_mkdir(phar_archive_data **pphar, char *dirname, int dirname_len PHP_METHOD(Phar, offsetSet) { char *fname, *cont_str = NULL; - int fname_len, cont_len; + zend_str_size_int fname_len, cont_len; zval *zresource; PHAR_ARCHIVE_OBJECT(); @@ -3723,8 +3731,8 @@ PHP_METHOD(Phar, offsetSet) return; } - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sr", &fname, &fname_len, &zresource) == FAILURE - && zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &fname, &fname_len, &cont_str, &cont_len) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Sr", &fname, &fname_len, &zresource) == FAILURE + && zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &fname, &fname_len, &cont_str, &cont_len) == FAILURE) { return; } @@ -3753,7 +3761,7 @@ PHP_METHOD(Phar, offsetSet) PHP_METHOD(Phar, offsetUnset) { char *fname, *error; - int fname_len; + zend_str_size_int fname_len; phar_entry_info *entry; PHAR_ARCHIVE_OBJECT(); @@ -3762,7 +3770,7 @@ PHP_METHOD(Phar, offsetUnset) return; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &fname, &fname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &fname, &fname_len) == FAILURE) { return; } @@ -3805,11 +3813,11 @@ PHP_METHOD(Phar, offsetUnset) PHP_METHOD(Phar, addEmptyDir) { char *dirname; - int dirname_len; + zend_str_size_int dirname_len; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &dirname, &dirname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &dirname, &dirname_len) == FAILURE) { return; } @@ -3828,13 +3836,13 @@ PHP_METHOD(Phar, addEmptyDir) PHP_METHOD(Phar, addFile) { char *fname, *localname = NULL; - int fname_len, localname_len = 0; + zend_str_size_int fname_len, localname_len = 0; php_stream *resource; zval *zresource; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &fname, &fname_len, &localname, &localname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|S", &fname, &fname_len, &localname, &localname_len) == FAILURE) { return; } @@ -3874,11 +3882,11 @@ PHP_METHOD(Phar, addFile) PHP_METHOD(Phar, addFromString) { char *localname, *cont_str; - int localname_len, cont_len; + zend_str_size_int localname_len, cont_len; PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &localname, &localname_len, &cont_str, &cont_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &localname, &localname_len, &cont_str, &cont_len) == FAILURE) { return; } @@ -4255,7 +4263,7 @@ PHP_METHOD(Phar, extractTo) php_stream_statbuf ssb; phar_entry_info *entry; char *pathto, *filename, *actual; - int pathto_len, filename_len; + zend_str_size_int pathto_len, filename_len; int ret, i; int nelems; zval *zval_files = NULL; @@ -4263,7 +4271,7 @@ PHP_METHOD(Phar, extractTo) PHAR_ARCHIVE_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z!b", &pathto, &pathto_len, &zval_files, &overwrite) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|z!b", &pathto, &pathto_len, &zval_files, &overwrite) == FAILURE) { return; } @@ -4311,7 +4319,7 @@ PHP_METHOD(Phar, extractTo) goto all_files; case IS_STRING: filename = Z_STRVAL_P(zval_files); - filename_len = Z_STRLEN_P(zval_files); + filename_len = Z_STRSIZE_P(zval_files); break; case IS_ARRAY: nelems = zend_hash_num_elements(Z_ARRVAL_P(zval_files)); @@ -4329,7 +4337,7 @@ PHP_METHOD(Phar, extractTo) "Invalid argument, array of filenames to extract contains non-string value"); return; } - if (FAILURE == zend_hash_find(&phar_obj->arc.archive->manifest, Z_STRVAL_PP(zval_file), Z_STRLEN_PP(zval_file), (void **)&entry)) { + if (FAILURE == zend_hash_find(&phar_obj->arc.archive->manifest, Z_STRVAL_PP(zval_file), Z_STRSIZE_PP(zval_file), (void **)&entry)) { zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Phar Error: attempted to extract non-existent file \"%s\" from phar \"%s\"", Z_STRVAL_PP(zval_file), phar_obj->arc.archive->fname); } @@ -4396,13 +4404,13 @@ all_files: PHP_METHOD(PharFileInfo, __construct) { char *fname, *arch, *entry, *error; - int fname_len, arch_len, entry_len; + zend_str_size_int fname_len, arch_len, entry_len; phar_entry_object *entry_obj; phar_entry_info *entry_info; phar_archive_data *phar_data; zval *zobj = getThis(), arg1; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &fname, &fname_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &fname, &fname_len) == FAILURE) { return; } @@ -4502,10 +4510,10 @@ PHP_METHOD(PharFileInfo, getCompressedSize) PHP_METHOD(PharFileInfo, isCompressed) { /* a number that is not Phar::GZ or Phar::BZ2 */ - long method = 9021976; + php_int_t method = 9021976; PHAR_ENTRY_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &method) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|i", &method) == FAILURE) { return; } @@ -4585,7 +4593,7 @@ PHP_METHOD(PharFileInfo, getPharFlags) PHP_METHOD(PharFileInfo, chmod) { char *error; - long perms; + php_int_t perms; PHAR_ENTRY_OBJECT(); if (entry_obj->ent.entry->is_temp_dir) { @@ -4599,7 +4607,7 @@ PHP_METHOD(PharFileInfo, chmod) return; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &perms) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &perms) == FAILURE) { return; } @@ -4834,7 +4842,7 @@ PHP_METHOD(PharFileInfo, getContent) phar_seek_efp(link, 0, SEEK_SET, 0, 0 TSRMLS_CC); Z_TYPE_P(return_value) = IS_STRING; - Z_STRLEN_P(return_value) = php_stream_copy_to_mem(fp, &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0); + Z_STRSIZE_P(return_value) = php_stream_copy_to_mem(fp, &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0); if (!Z_STRVAL_P(return_value)) { Z_STRVAL_P(return_value) = estrndup("", 0); @@ -4847,11 +4855,11 @@ PHP_METHOD(PharFileInfo, getContent) */ PHP_METHOD(PharFileInfo, compress) { - long method; + php_int_t method; char *error; PHAR_ENTRY_OBJECT(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &method) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &method) == FAILURE) { return; } diff --git a/ext/phar/phar_path_check.c b/ext/phar/phar_path_check.c index d3a3aab6b94..65f03e8b313 100644 --- a/ext/phar/phar_path_check.c +++ b/ext/phar/phar_path_check.c @@ -22,7 +22,7 @@ #include "phar_internal.h" -phar_path_check_result phar_path_check(char **s, int *len, const char **error) +phar_path_check_result phar_path_check(char **s, zend_str_size_int *len, const char **error) { const unsigned char *p = (const unsigned char*)*s; const unsigned char *m; diff --git a/ext/phar/php_phar.h b/ext/phar/php_phar.h index f8325d0c635..84e70abdc98 100644 --- a/ext/phar/php_phar.h +++ b/ext/phar/php_phar.h @@ -34,7 +34,7 @@ extern zend_module_entry phar_module_entry; #define PHP_PHAR_API PHPAPI #endif -PHP_PHAR_API int phar_resolve_alias(char *alias, int alias_len, char **filename, int *filename_len TSRMLS_DC); +PHP_PHAR_API int phar_resolve_alias(char *alias, zend_str_size_int alias_len, char **filename, zend_str_size_int *filename_len TSRMLS_DC); #endif /* PHP_PHAR_H */ diff --git a/ext/phar/stream.c b/ext/phar/stream.c index 1b353e0d18c..842f5e9a426 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -60,7 +60,7 @@ php_url* phar_parse_url(php_stream_wrapper *wrapper, const char *filename, const { php_url *resource; char *arch = NULL, *entry = NULL, *error; - int arch_len, entry_len; + zend_str_size_int arch_len, entry_len; if (strlen(filename) < 7 || strncasecmp(filename, "phar://", 7)) { return NULL; @@ -378,7 +378,7 @@ static size_t phar_stream_read(php_stream *stream, char *buf, size_t count TSRML got = php_stream_read(data->fp, buf, MIN(count, entry->uncompressed_filesize - data->position)); data->position = php_stream_tell(data->fp) - data->zero; - stream->eof = (data->position == (off_t) entry->uncompressed_filesize); + stream->eof = (data->position == (zend_off_t) entry->uncompressed_filesize); return got; } @@ -387,12 +387,12 @@ static size_t phar_stream_read(php_stream *stream, char *buf, size_t count TSRML /** * Used for fseek($fp) on a phar file handle */ -static int phar_stream_seek(php_stream *stream, off_t offset, int whence, off_t *newoffset TSRMLS_DC) /* {{{ */ +static int phar_stream_seek(php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffset TSRMLS_DC) /* {{{ */ { phar_entry_data *data = (phar_entry_data *)stream->abstract; phar_entry_info *entry; int res; - off_t temp; + zend_off_t temp; if (data->internal_file->link) { entry = phar_get_link_source(data->internal_file TSRMLS_CC); @@ -441,7 +441,7 @@ static size_t phar_stream_write(php_stream *stream, const char *buf, size_t coun return -1; } data->position = php_stream_tell(data->fp); - if (data->position > (off_t)data->internal_file->uncompressed_filesize) { + if (data->position > (zend_off_t)data->internal_file->uncompressed_filesize) { data->internal_file->uncompressed_filesize = data->position; } data->internal_file->compressed_filesize = data->internal_file->uncompressed_filesize; @@ -570,8 +570,8 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f char *internal_file, *error; phar_archive_data *phar; phar_entry_info *entry; - uint host_len; - int internal_file_len; + zend_str_size_uint host_len; + zend_str_size_int internal_file_len; if ((resource = phar_parse_url(wrapper, url, "r", flags|PHP_STREAM_URL_STAT_QUIET TSRMLS_CC)) == NULL) { return FAILURE; @@ -628,19 +628,19 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f /* check for mounted directories */ if (phar->mounted_dirs.arBuckets && zend_hash_num_elements(&phar->mounted_dirs)) { char *str_key; - ulong unused; - uint keylen; + php_uint_t unused; + zend_str_size_uint keylen; HashPosition pos; for (zend_hash_internal_pointer_reset_ex(&phar->mounted_dirs, &pos); HASH_KEY_NON_EXISTENT != zend_hash_get_current_key_ex(&phar->mounted_dirs, &str_key, &keylen, &unused, 0, &pos); zend_hash_move_forward_ex(&phar->mounted_dirs, &pos) ) { - if ((int)keylen >= internal_file_len || strncmp(str_key, internal_file, keylen)) { + if (keylen >= internal_file_len || strncmp(str_key, internal_file, keylen)) { continue; } else { char *test; - int test_len; + zend_str_size_int test_len; php_stream_statbuf ssbi; if (SUCCESS != zend_hash_find(&phar->manifest, str_key, keylen, (void **) &entry)) { @@ -682,10 +682,10 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int { php_url *resource; char *internal_file, *error; - int internal_file_len; + zend_str_size_int internal_file_len; phar_entry_data *idata; phar_archive_data **pphar; - uint host_len; + zend_str_size_uint host_len; if ((resource = phar_parse_url(wrapper, url, "rb", options TSRMLS_CC)) == NULL) { php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: unlink failed"); @@ -903,10 +903,10 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from if (is_dir) { int key_type; char *str_key, *new_str_key; - uint key_len, new_key_len; - ulong unused; - uint from_len = strlen(resource_from->path+1); - uint to_len = strlen(resource_to->path+1); + zend_str_size_uint key_len, new_key_len; + php_uint_t unused; + zend_str_size_uint from_len = strlen(resource_from->path+1); + zend_str_size_uint to_len = strlen(resource_to->path+1); for (zend_hash_internal_pointer_reset(&phar->manifest); HASH_KEY_NON_EXISTENT != (key_type = zend_hash_get_current_key_ex(&phar->manifest, &str_key, &key_len, &unused, 0, NULL)) && diff --git a/ext/phar/stream.h b/ext/phar/stream.h index 0155759d129..5b816e73606 100644 --- a/ext/phar/stream.h +++ b/ext/phar/stream.h @@ -34,7 +34,7 @@ static size_t phar_stream_write(php_stream *stream, const char *buf, size_t coun static size_t phar_stream_read( php_stream *stream, char *buf, size_t count TSRMLS_DC); static int phar_stream_close(php_stream *stream, int close_handle TSRMLS_DC); static int phar_stream_flush(php_stream *stream TSRMLS_DC); -static int phar_stream_seek( php_stream *stream, off_t offset, int whence, off_t *newoffset TSRMLS_DC); +static int phar_stream_seek( php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffset TSRMLS_DC); static int phar_stream_stat( php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC); END_EXTERN_C() diff --git a/ext/phar/stub.h b/ext/phar/stub.h index daafa391ca1..9d5e82ca681 100644 --- a/ext/phar/stub.h +++ b/ext/phar/stub.h @@ -18,7 +18,7 @@ /* $Id$ */ -static inline void phar_get_stub(const char *index_php, const char *web, size_t *len, char **stub, const int name_len, const int web_len TSRMLS_DC) +static inline void phar_get_stub(const char *index_php, const char *web, size_t *len, char **stub, const zend_str_size_int name_len, const zend_str_size_int web_len TSRMLS_DC) { static const char newstub0[] = " 2,\n'c' => 'text/plain',\n'cc' => 'text/plain',\n'cpp' => 'text/plain',\n'c++' => 'text/plain',\n'dtd' => 'text/plain',\n'h' => 'text/plain',\n'log' => 'text/plain',\n'rng' => 'text/plain',\n'txt' => 'text/plain',\n'xsd' => 'text/plain',\n'php' => 1,\n'inc' => 1,\n'avi' => 'video/avi',\n'bmp' => 'image/bmp',\n'css' => 'text/css',\n'gif' => 'image/gif',\n'htm' => 'text/html',\n'html' => 'text/html',\n'htmls' => 'text/html',\n'ico' => 'image/x-ico',\n'jpe' => 'image/jpeg',\n'jpg' => 'image/jpeg',\n'jpeg' => 'image/jpeg',\n'js' => 'application/x-javascript',\n'midi' => 'audio/midi',\n'mid' => 'audio/midi',\n'mod' => 'audio/mod',\n'mov' => 'movie/quicktime',\n'mp3' => 'audio/mp3',\n'mpg' => 'video/mpeg',\n'mpeg' => 'video/mpeg',\n'pdf' => 'application/pdf',\n'png' => 'image/png',\n'swf' => 'application/shockwave-flash',\n'tif' => 'image/tiff',\n'tiff' => 'image/tiff',\n'wav' => 'audio/wav',\n'xbm' => 'image/xbm',\n'xml' => 'text/xml',\n);\n\nheader(\"Cache-Control: no-cache, must-revalidate\");\nheader(\"Pragma: no-cache\");\n\n$basename = basename(__FILE__);\nif (!strpos($_SERVER['REQUEST_URI'], $basename)) {\nchdir(Extract_Phar::$temp);\ninclude $web;\nreturn;\n}\n$pt = substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], $basename) + strlen($basename));\nif (!$pt || $pt == '/') {\n$pt = $web;\nheader('HTTP/1.1 301 Moved Permanently');\nheader('Location: ' . $_SERVER['REQUEST_URI'] . '/' . $pt);\nexit;\n}\n$a = realpath(Extract_Phar::$temp . DIRECTORY_SEPARATOR . $pt);\nif (!$a || strlen(dirname($a)) < strlen("; diff --git a/ext/phar/tar.c b/ext/phar/tar.c index 180675a9d23..ef33f2a62e6 100644 --- a/ext/phar/tar.c +++ b/ext/phar/tar.c @@ -19,7 +19,7 @@ #include "phar_internal.h" -static php_uint32 phar_tar_number(char *buf, int len) /* {{{ */ +static php_uint32 phar_tar_number(char *buf, zend_str_size_int len) /* {{{ */ { php_uint32 num = 0; int i = 0; @@ -62,10 +62,10 @@ static php_uint32 phar_tar_number(char *buf, int len) /* {{{ */ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -static int phar_tar_octal(char *buf, php_uint32 val, int len) /* {{{ */ +static int phar_tar_octal(char *buf, php_uint32 val, zend_str_size_int len) /* {{{ */ { char *p = buf; - int s = len; + zend_str_size_int s = len; p += len; /* Start at the end and work backwards. */ while (s-- > 0) { @@ -84,7 +84,7 @@ static int phar_tar_octal(char *buf, php_uint32 val, int len) /* {{{ */ } /* }}} */ -static php_uint32 phar_tar_checksum(char *buf, int len) /* {{{ */ +static php_uint32 phar_tar_checksum(char *buf, zend_str_size_int len) /* {{{ */ { php_uint32 sum = 0; char *end = buf + len; @@ -121,7 +121,7 @@ int phar_is_tar(char *buf, char *fname) /* {{{ */ } /* }}} */ -int phar_open_or_create_tar(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_open_or_create_tar(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { phar_archive_data *phar; int ret = phar_create_or_parse_filename(fname, fname_len, alias, alias_len, is_data, options, &phar, error TSRMLS_CC); @@ -192,7 +192,7 @@ static int phar_tar_process_metadata(phar_entry_info *entry, php_stream *fp TSRM } /* }}} */ -int phar_parse_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, int alias_len, phar_archive_data** pphar, int is_data, php_uint32 compression, char **error TSRMLS_DC) /* {{{ */ +int phar_parse_tarfile(php_stream* fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, phar_archive_data** pphar, int is_data, php_uint32 compression, char **error TSRMLS_DC) /* {{{ */ { char buf[512], *actual_alias = NULL, *p; phar_entry_info entry = {0}; @@ -256,7 +256,7 @@ int phar_parse_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, phar_tar_number(hdr->size, sizeof(hdr->size)); if (((!old && hdr->prefix[0] == 0) || old) && strlen(hdr->name) == sizeof(".phar/signature.bin")-1 && !strncmp(hdr->name, ".phar/signature.bin", sizeof(".phar/signature.bin")-1)) { - off_t curloc; + zend_off_t curloc; if (size > 511) { if (error) { @@ -863,7 +863,7 @@ int phar_tar_setmetadata(zval *metadata, phar_entry_info *entry, char **error TS static int phar_tar_setupmetadata(void *pDest, void *argument TSRMLS_DC) /* {{{ */ { - int lookfor_len; + zend_str_size_int lookfor_len; struct _phar_pass_tar_info *i = (struct _phar_pass_tar_info *)argument; char *lookfor, **error = i->error; phar_entry_info *entry = (phar_entry_info *)pDest, *metadata, newentry = {0}; @@ -917,12 +917,13 @@ static int phar_tar_setupmetadata(void *pDest, void *argument TSRMLS_DC) /* {{{ } /* }}} */ -int phar_tar_flush(phar_archive_data *phar, char *user_stub, long len, int defaultstub, char **error TSRMLS_DC) /* {{{ */ +int phar_tar_flush(phar_archive_data *phar, char *user_stub, php_int_t len, int defaultstub, char **error TSRMLS_DC) /* {{{ */ { phar_entry_info entry = {0}; static const char newstub[] = " #include #else -static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, char *key, int key_len, char **signature, int *signature_len TSRMLS_DC); +static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t end, char *key, zend_str_size_int key_len, char **signature, zend_str_size_int *signature_len TSRMLS_DC); #endif /* for links to relative location, prepend cwd of the entry */ @@ -117,10 +117,10 @@ php_stream *phar_get_efp(phar_entry_info *entry, int follow_links TSRMLS_DC) /* } /* }}} */ -int phar_seek_efp(phar_entry_info *entry, off_t offset, int whence, off_t position, int follow_links TSRMLS_DC) /* {{{ */ +int phar_seek_efp(phar_entry_info *entry, zend_off_t offset, int whence, zend_off_t position, int follow_links TSRMLS_DC) /* {{{ */ { php_stream *fp = phar_get_efp(entry, follow_links TSRMLS_CC); - off_t temp, eoffset; + zend_off_t temp, eoffset; if (!fp) { return -1; @@ -154,7 +154,7 @@ int phar_seek_efp(phar_entry_info *entry, off_t offset, int whence, off_t positi temp = 0; } - if (temp > eoffset + (off_t) entry->uncompressed_filesize) { + if (temp > eoffset + (zend_off_t) entry->uncompressed_filesize) { return -1; } @@ -167,7 +167,7 @@ int phar_seek_efp(phar_entry_info *entry, off_t offset, int whence, off_t positi /* }}} */ /* mount an absolute path or uri to a path internal to the phar archive */ -int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, char *path, int path_len TSRMLS_DC) /* {{{ */ +int phar_mount_entry(phar_archive_data *phar, char *filename, zend_str_size_int filename_len, char *path, zend_str_size_int path_len TSRMLS_DC) /* {{{ */ { phar_entry_info entry = {0}; php_stream_statbuf ssb; @@ -250,10 +250,10 @@ int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, } /* }}} */ -char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_data **pphar TSRMLS_DC) /* {{{ */ +char *phar_find_in_include_path(char *filename, zend_str_size_int filename_len, phar_archive_data **pphar TSRMLS_DC) /* {{{ */ { char *path, *fname, *arch, *entry, *ret, *test; - int arch_len, entry_len, fname_len, ret_len; + zend_str_size_int arch_len, entry_len, fname_len, ret_len; phar_archive_data *phar; if (pphar) { @@ -283,7 +283,7 @@ char *phar_find_in_include_path(char *filename, int filename_len, phar_archive_d efree(entry); if (*filename == '.') { - int try_len; + zend_str_size_int try_len; if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL TSRMLS_CC)) { efree(arch); @@ -350,7 +350,7 @@ splitted: * appended, truncated, or read. For read, if the entry is marked unmodified, it is * assumed that the file pointer, if present, is opened for reading */ -int phar_get_entry_data(phar_entry_data **ret, char *fname, int fname_len, char *path, int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC) /* {{{ */ +int phar_get_entry_data(phar_entry_data **ret, char *fname, zend_str_size_int fname_len, char *path, zend_str_size_int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC) /* {{{ */ { phar_archive_data *phar; phar_entry_info *entry; @@ -511,7 +511,7 @@ really_get_entry: /** * Create a new dummy file slot within a writeable phar for a newly created file */ -phar_entry_data *phar_get_or_create_entry_data(char *fname, int fname_len, char *path, int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC) /* {{{ */ +phar_entry_data *phar_get_or_create_entry_data(char *fname, zend_str_size_int fname_len, char *path, zend_str_size_int path_len, const char *mode, char allow_dir, char **error, int security TSRMLS_DC) /* {{{ */ { phar_archive_data *phar; phar_entry_info *entry, etemp; @@ -693,7 +693,7 @@ int phar_open_entry_fp(phar_entry_info *entry, char **error, int follow_links TS php_stream_filter *filter; phar_archive_data *phar = entry->phar; char *filtername; - off_t loc; + zend_off_t loc; php_stream *ufp; phar_entry_data dummy; @@ -786,7 +786,7 @@ int phar_open_entry_fp(phar_entry_info *entry, char **error, int follow_links TS php_stream_flush(ufp); php_stream_filter_remove(filter, 1 TSRMLS_CC); - if (php_stream_tell(ufp) - loc != (off_t) entry->uncompressed_filesize) { + if (php_stream_tell(ufp) - loc != (zend_off_t) entry->uncompressed_filesize) { spprintf(error, 4096, "phar error: internal corruption of phar \"%s\" (actual filesize mismatch on file \"%s\")", phar->fname, entry->filename); return FAILURE; } @@ -923,7 +923,7 @@ phar_entry_info * phar_open_jit(phar_archive_data *phar, phar_entry_info *entry, } /* }}} */ -PHP_PHAR_API int phar_resolve_alias(char *alias, int alias_len, char **filename, int *filename_len TSRMLS_DC) /* {{{ */ { +PHP_PHAR_API int phar_resolve_alias(char *alias, zend_str_size_int alias_len, char **filename, zend_str_size_int *filename_len TSRMLS_DC) /* {{{ */ { phar_archive_data **fd_ptr; if (PHAR_GLOBALS->phar_alias_map.arBuckets && SUCCESS == zend_hash_find(&(PHAR_GLOBALS->phar_alias_map), alias, alias_len, (void**)&fd_ptr)) { @@ -935,7 +935,7 @@ PHP_PHAR_API int phar_resolve_alias(char *alias, int alias_len, char **filename, } /* }}} */ -int phar_free_alias(phar_archive_data *phar, char *alias, int alias_len TSRMLS_DC) /* {{{ */ +int phar_free_alias(phar_archive_data *phar, char *alias, zend_str_size_int alias_len TSRMLS_DC) /* {{{ */ { if (phar->refcount || phar->is_persistent) { return FAILURE; @@ -958,12 +958,12 @@ int phar_free_alias(phar_archive_data *phar, char *alias, int alias_len TSRMLS_D * Looks up a phar archive in the filename map, connecting it to the alias * (if any) or returns null */ -int phar_get_archive(phar_archive_data **archive, char *fname, int fname_len, char *alias, int alias_len, char **error TSRMLS_DC) /* {{{ */ +int phar_get_archive(phar_archive_data **archive, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, char **error TSRMLS_DC) /* {{{ */ { phar_archive_data *fd, **fd_ptr; char *my_realpath, *save; - int save_len; - ulong fhash, ahash = 0; + zend_str_size_int save_len; + php_uint_t fhash, ahash = 0; phar_request_initialize(TSRMLS_C); @@ -1206,7 +1206,7 @@ char * phar_decompress_filter(phar_entry_info * entry, int return_unknown) /* {{ /** * retrieve information on a file contained within a phar, or null if it ain't there */ -phar_entry_info *phar_get_entry_info(phar_archive_data *phar, char *path, int path_len, char **error, int security TSRMLS_DC) /* {{{ */ +phar_entry_info *phar_get_entry_info(phar_archive_data *phar, char *path, zend_str_size_int path_len, char **error, int security TSRMLS_DC) /* {{{ */ { return phar_get_entry_info_dir(phar, path, path_len, 0, error, security TSRMLS_CC); } @@ -1216,7 +1216,7 @@ phar_entry_info *phar_get_entry_info(phar_archive_data *phar, char *path, int pa * allow_dir is 0 for none, 1 for both empty directories in the phar and temp directories, and 2 for only * valid pre-existing empty directory entries */ -phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, int path_len, char dir, char **error, int security TSRMLS_DC) /* {{{ */ +phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, zend_str_size_int path_len, char dir, char **error, int security TSRMLS_DC) /* {{{ */ { const char *pcr_error; phar_entry_info *entry; @@ -1300,8 +1300,8 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, in if (phar->mounted_dirs.arBuckets && zend_hash_num_elements(&phar->mounted_dirs)) { char *str_key; - ulong unused; - uint keylen; + php_uint_t unused; + zend_str_size_uint keylen; zend_hash_internal_pointer_reset(&phar->mounted_dirs); while (FAILURE != zend_hash_has_more_elements(&phar->mounted_dirs)) { @@ -1309,11 +1309,11 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, in break; } - if ((int)keylen >= path_len || strncmp(str_key, path, keylen)) { + if (keylen >= path_len || strncmp(str_key, path, keylen)) { continue; } else { char *test; - int test_len; + zend_str_size_int test_len; php_stream_statbuf ssb; if (SUCCESS != zend_hash_find(&phar->manifest, str_key, keylen, (void **) &entry)) { @@ -1399,7 +1399,7 @@ static int phar_hex_str(const char *digest, size_t digest_len, char **signature /* }}} */ #ifndef PHAR_HAVE_OPENSSL -static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, char *key, int key_len, char **signature, int *signature_len TSRMLS_DC) /* {{{ */ +static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t end, char *key, zend_str_size_int key_len, char **signature, int *signature_len TSRMLS_DC) /* {{{ */ { zend_fcall_info fci; zend_fcall_info_cache fcc; @@ -1418,9 +1418,9 @@ static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, php_stream_rewind(fp); Z_TYPE_P(zdata) = IS_STRING; - Z_STRLEN_P(zdata) = end; + Z_STRSIZE_P(zdata) = end; - if (end != (off_t) php_stream_copy_to_mem(fp, &(Z_STRVAL_P(zdata)), (size_t) end, 0)) { + if (end != (zend_off_t) php_stream_copy_to_mem(fp, &(Z_STRVAL_P(zdata)), (size_t) end, 0)) { zval_dtor(zdata); zval_dtor(zsig); zval_dtor(zkey); @@ -1498,8 +1498,8 @@ static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, case IS_BOOL: efree(retval_ptr); if (Z_BVAL_P(retval_ptr)) { - *signature = estrndup(Z_STRVAL_P(zsig), Z_STRLEN_P(zsig)); - *signature_len = Z_STRLEN_P(zsig); + *signature = estrndup(Z_STRVAL_P(zsig), Z_STRSIZE_P(zsig)); + *signature_len = Z_STRSIZE_P(zsig); zval_dtor(zsig); efree(zsig); return SUCCESS; @@ -1512,10 +1512,10 @@ static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, /* }}} */ #endif /* #ifndef PHAR_HAVE_OPENSSL */ -int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_type, char *sig, int sig_len, char *fname, char **signature, int *signature_len, char **error TSRMLS_DC) /* {{{ */ +int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_type, char *sig, zend_str_size_int sig_len, char *fname, char **signature, zend_str_size_int *signature_len, char **error TSRMLS_DC) /* {{{ */ { - int read_size, len; - off_t read_len; + zend_str_size_int read_size, len; + zend_off_t read_len; unsigned char buf[1024]; php_stream_rewind(fp); @@ -1609,17 +1609,17 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ if (read_len > sizeof(buf)) { read_size = sizeof(buf); } else { - read_size = (int)read_len; + read_size = read_len; } php_stream_seek(fp, 0, SEEK_SET); while (read_size && (len = php_stream_read(fp, (char*)buf, read_size)) > 0) { EVP_VerifyUpdate (&md_ctx, buf, len); - read_len -= (off_t)len; + read_len -= (zend_off_t)len; if (read_len < read_size) { - read_size = (int)read_len; + read_size = read_len; } } @@ -1651,14 +1651,14 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ if (read_len > sizeof(buf)) { read_size = sizeof(buf); } else { - read_size = (int)read_len; + read_size = read_len; } while ((len = php_stream_read(fp, (char*)buf, read_size)) > 0) { PHP_SHA512Update(&context, buf, len); - read_len -= (off_t)len; + read_len -= (zend_off_t)len; if (read_len < read_size) { - read_size = (int)read_len; + read_size = read_len; } } @@ -1684,14 +1684,14 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ if (read_len > sizeof(buf)) { read_size = sizeof(buf); } else { - read_size = (int)read_len; + read_size = read_len; } while ((len = php_stream_read(fp, (char*)buf, read_size)) > 0) { PHP_SHA256Update(&context, buf, len); - read_len -= (off_t)len; + read_len -= (zend_off_t)len; if (read_len < read_size) { - read_size = (int)read_len; + read_size = read_len; } } @@ -1725,14 +1725,14 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ if (read_len > sizeof(buf)) { read_size = sizeof(buf); } else { - read_size = (int)read_len; + read_size = read_len; } while ((len = php_stream_read(fp, (char*)buf, read_size)) > 0) { PHP_SHA1Update(&context, buf, len); - read_len -= (off_t)len; + read_len -= (zend_off_t)len; if (read_len < read_size) { - read_size = (int)read_len; + read_size = read_len; } } @@ -1758,14 +1758,14 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ if (read_len > sizeof(buf)) { read_size = sizeof(buf); } else { - read_size = (int)read_len; + read_size = read_len; } while ((len = php_stream_read(fp, (char*)buf, read_size)) > 0) { PHP_MD5Update(&context, buf, len); - read_len -= (off_t)len; + read_len -= (zend_off_t)len; if (read_len < read_size) { - read_size = (int)read_len; + read_size = read_len; } } @@ -1791,10 +1791,10 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ } /* }}} */ -int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signature, int *signature_length, char **error TSRMLS_DC) /* {{{ */ +int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signature, zend_str_size_int *signature_length, char **error TSRMLS_DC) /* {{{ */ { unsigned char buf[1024]; - int sig_len; + zend_str_size_int sig_len; php_stream_rewind(fp); @@ -1845,7 +1845,7 @@ int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signat return FAILURE; #endif case PHAR_SIG_OPENSSL: { - int siglen; + zend_str_size_int siglen; unsigned char *sigbuf; #ifdef PHAR_HAVE_OPENSSL BIO *in; @@ -1959,7 +1959,7 @@ int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signat } /* }}} */ -void phar_add_virtual_dirs(phar_archive_data *phar, char *filename, int filename_len TSRMLS_DC) /* {{{ */ +void phar_add_virtual_dirs(phar_archive_data *phar, char *filename, zend_str_size_int filename_len TSRMLS_DC) /* {{{ */ { const char *s; diff --git a/ext/phar/zip.c b/ext/phar/zip.c index 2e977b8840f..f910e13e5cc 100644 --- a/ext/phar/zip.c +++ b/ext/phar/zip.c @@ -163,11 +163,11 @@ static void phar_zip_u2d_time(time_t time, char *dtime, char *ddate) /* {{{ */ * This is used by phar_open_from_fp to process a zip-based phar, but can be called * directly. */ -int phar_parse_zipfile(php_stream *fp, char *fname, int fname_len, char *alias, int alias_len, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_parse_zipfile(php_stream *fp, char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { phar_zip_dir_end locator; char buf[sizeof(locator) + 65536]; - long size; + php_int_t size; php_uint16 i; phar_archive_data *mydata = NULL; phar_entry_info entry = {0}; @@ -350,7 +350,7 @@ foundit: /* add each central directory item to the manifest */ for (i = 0; i < PHAR_GET_16(locator.count); ++i) { phar_zip_central_dir_file zipentry; - off_t beforeus = php_stream_tell(fp); + zend_off_t beforeus = php_stream_tell(fp); if (sizeof(zipentry) != php_stream_read(fp, (char *) &zipentry, sizeof(zipentry))) { PHAR_ZIP_FAIL("unable to read central directory entry, truncated"); @@ -405,7 +405,7 @@ foundit: if (entry.filename_len == sizeof(".phar/signature.bin")-1 && !strncmp(entry.filename, ".phar/signature.bin", sizeof(".phar/signature.bin")-1)) { size_t read; php_stream *sigfile; - off_t now; + zend_off_t now; char *sig; now = php_stream_tell(fp); @@ -460,7 +460,7 @@ foundit: phar_add_virtual_dirs(mydata, entry.filename, entry.filename_len TSRMLS_CC); if (PHAR_GET_16(zipentry.extra_len)) { - off_t loc = php_stream_tell(fp); + zend_off_t loc = php_stream_tell(fp); if (FAILURE == phar_zip_process_extra(fp, &entry, PHAR_GET_16(zipentry.extra_len) TSRMLS_CC)) { pefree(entry.filename, entry.is_persistent); PHAR_ZIP_FAIL("Unable to process extra field header for file in central directory"); @@ -556,7 +556,7 @@ foundit: if (!actual_alias && entry.filename_len == sizeof(".phar/alias.txt")-1 && !strncmp(entry.filename, ".phar/alias.txt", sizeof(".phar/alias.txt")-1)) { php_stream_filter *filter; - off_t saveloc; + zend_off_t saveloc; /* verify local file header */ phar_zip_file_header local; @@ -717,7 +717,7 @@ foundit: /** * Create or open a zip-based phar for writing */ -int phar_open_or_create_zip(char *fname, int fname_len, char *alias, int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ +int phar_open_or_create_zip(char *fname, zend_str_size_int fname_len, char *alias, zend_str_size_int alias_len, int is_data, int options, phar_archive_data** pphar, char **error TSRMLS_DC) /* {{{ */ { phar_archive_data *phar; int ret = phar_create_or_parse_filename(fname, fname_len, alias, alias_len, is_data, options, &phar, error TSRMLS_CC); @@ -769,7 +769,7 @@ static int phar_zip_changed_apply(void *data, void *arg TSRMLS_DC) /* {{{ */ phar_zip_central_dir_file central; struct _phar_zip_pass *p; php_uint32 newcrc32; - off_t offset; + zend_off_t offset; int not_really_modified = 0; entry = (phar_entry_info *)data; p = (struct _phar_zip_pass*) arg; @@ -1079,11 +1079,11 @@ static int phar_zip_applysignature(phar_archive_data *phar, struct _phar_zip_pas { /* add signature for executable tars or tars explicitly set with setSignatureAlgorithm */ if (!phar->is_data || phar->sig_flags) { - int signature_length; + zend_str_size_int signature_length; char *signature, sigbuf[8]; phar_entry_info entry = {0}; php_stream *newfile; - off_t tell, st; + zend_off_t tell, st; newfile = php_stream_fopen_tmpfile(); if (newfile == NULL) { @@ -1152,7 +1152,7 @@ static int phar_zip_applysignature(phar_archive_data *phar, struct _phar_zip_pas } /* }}} */ -int phar_zip_flush(phar_archive_data *phar, char *user_stub, long len, int defaultstub, char **error TSRMLS_DC) /* {{{ */ +int phar_zip_flush(phar_archive_data *phar, char *user_stub, php_int_t len, int defaultstub, char **error TSRMLS_DC) /* {{{ */ { char *pos; smart_str main_metadata_str = {0};