summaryrefslogtreecommitdiff
path: root/ext/standard/ftp_fopen_wrapper.c
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2003-12-10 07:15:28 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2003-12-10 07:15:28 +0000
commitb2cd08f33dcc1c0b5d318370625a01fa0323cded (patch)
tree913443901ff866db3d6dd1360bc690b61cd11304 /ext/standard/ftp_fopen_wrapper.c
parent35c3a7f525b18ab01a62d97c70e533e4fd6e5b23 (diff)
downloadphp-git-b2cd08f33dcc1c0b5d318370625a01fa0323cded.tar.gz
Fix bug #26574 (basename() doesn't work properly with multibyte characters)
Diffstat (limited to 'ext/standard/ftp_fopen_wrapper.c')
-rw-r--r--ext/standard/ftp_fopen_wrapper.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/standard/ftp_fopen_wrapper.c b/ext/standard/ftp_fopen_wrapper.c
index 6d4014fdd9..52a4e4e289 100644
--- a/ext/standard/ftp_fopen_wrapper.c
+++ b/ext/standard/ftp_fopen_wrapper.c
@@ -562,7 +562,7 @@ static size_t php_ftp_dirstream_read(php_stream *stream, char *buf, size_t count
php_stream *innerstream = (php_stream *)stream->abstract;
size_t tmp_len;
char *basename;
- int basename_len;
+ size_t basename_len;
if (count != sizeof(php_stream_dirent)) {
return 0;
@@ -586,8 +586,9 @@ static size_t php_ftp_dirstream_read(php_stream *stream, char *buf, size_t count
return 0;
}
- memcpy(ent->d_name, basename, MIN((int)sizeof(ent->d_name), basename_len)-1);
- ent->d_name[sizeof(ent->d_name)-1] = '\0';
+ tmp_len = MIN(sizeof(ent->d_name), basename_len) - 1;
+ memcpy(ent->d_name, basename, tmp_len);
+ ent->d_name[tmp_len] = '\0';
efree(basename);
return sizeof(php_stream_dirent);