diff options
author | Sara Golemon <pollita@php.net> | 2004-01-28 22:50:12 +0000 |
---|---|---|
committer | Sara Golemon <pollita@php.net> | 2004-01-28 22:50:12 +0000 |
commit | c603f3112ed0d7895d94357f3bcbc40eae80d1ee (patch) | |
tree | 7966a0b6acaf10aa88d8ddb4b9de2a083d1d8059 | |
parent | d45541b4fb76af3a30582f949a3704de8b4c0e5c (diff) | |
download | php-git-c603f3112ed0d7895d94357f3bcbc40eae80d1ee.tar.gz |
FTP dirstream_read should not leave whitespace/newlines on dirents
-rw-r--r-- | ext/standard/ftp_fopen_wrapper.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/standard/ftp_fopen_wrapper.c b/ext/standard/ftp_fopen_wrapper.c index 533a98c505..3032550654 100644 --- a/ext/standard/ftp_fopen_wrapper.c +++ b/ext/standard/ftp_fopen_wrapper.c @@ -586,11 +586,19 @@ static size_t php_ftp_dirstream_read(php_stream *stream, char *buf, size_t count return 0; } - tmp_len = MIN(sizeof(ent->d_name), basename_len) - 1; + 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); + /* Trim off trailing whitespace characters */ + tmp_len--; + while (tmp_len >= 0 && + (ent->d_name[tmp_len] == '\n' || ent->d_name[tmp_len] == '\r' || + ent->d_name[tmp_len] == '\t' || ent->d_name[tmp_len] == ' ')) { + ent->d_name[tmp_len--] = '\0'; + } + return sizeof(php_stream_dirent); } /* }}} */ |