summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSara Golemon <pollita@php.net>2004-01-28 22:50:12 +0000
committerSara Golemon <pollita@php.net>2004-01-28 22:50:12 +0000
commitc603f3112ed0d7895d94357f3bcbc40eae80d1ee (patch)
tree7966a0b6acaf10aa88d8ddb4b9de2a083d1d8059
parentd45541b4fb76af3a30582f949a3704de8b4c0e5c (diff)
downloadphp-git-c603f3112ed0d7895d94357f3bcbc40eae80d1ee.tar.gz
FTP dirstream_read should not leave whitespace/newlines on dirents
-rw-r--r--ext/standard/ftp_fopen_wrapper.c10
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);
}
/* }}} */