summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}
/* }}} */