diff options
| author | Xinchen Hui <laruence@gmail.com> | 2014-02-23 18:08:35 +0800 |
|---|---|---|
| committer | Xinchen Hui <laruence@gmail.com> | 2014-02-23 18:08:35 +0800 |
| commit | c0aba2c641a6bfe909011d0fc25acfdd63d85525 (patch) | |
| tree | 4fc6c3d5422895be209118ddc52f707da35b5679 /ext/zip/zip_stream.c | |
| parent | 0e4cfad1e8f6d199fd396082985aa2a0bb7c716b (diff) | |
| download | php-git-c0aba2c641a6bfe909011d0fc25acfdd63d85525.tar.gz | |
Refactor basename using zend_string
Diffstat (limited to 'ext/zip/zip_stream.c')
| -rw-r--r-- | ext/zip/zip_stream.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/ext/zip/zip_stream.c b/ext/zip/zip_stream.c index 8d02d89637..956f066064 100644 --- a/ext/zip/zip_stream.c +++ b/ext/zip/zip_stream.c @@ -118,13 +118,12 @@ static int php_zip_ops_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_D struct zip_stat sb; const char *path = stream->orig_path; int path_len = strlen(stream->orig_path); - char *file_basename; - size_t file_basename_len; char file_dirname[MAXPATHLEN]; struct zip *za; char *fragment; int fragment_len; int err; + zend_string *file_basename; fragment = strchr(path, '#'); if (!fragment) { @@ -149,11 +148,11 @@ static int php_zip_ops_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_D memcpy(file_dirname, path, path_len - fragment_len); file_dirname[path_len - fragment_len] = '\0'; - php_basename((char *)path, path_len - fragment_len, NULL, 0, &file_basename, &file_basename_len TSRMLS_CC); + file_basename = php_basename((char *)path, path_len - fragment_len, NULL, 0 TSRMLS_CC); fragment++; if (ZIP_OPENBASEDIR_CHECKPATH(file_dirname)) { - efree(file_basename); + STR_RELEASE(file_basename); return -1; } @@ -161,7 +160,7 @@ static int php_zip_ops_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_D if (za) { memset(ssb, 0, sizeof(php_stream_statbuf)); if (zip_stat(za, fragment, ZIP_FL_NOCASE, &sb) != 0) { - efree(file_basename); + STR_RELEASE(file_basename); return -1; } zip_close(za); @@ -185,7 +184,7 @@ static int php_zip_ops_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_D #endif ssb->sb.st_ino = -1; } - efree(file_basename); + STR_RELEASE(file_basename); return 0; } /* }}} */ |
