]> granicus.if.org Git - php/commitdiff
FTP dirstream_read should not leave whitespace/newlines on dirents
authorSara Golemon <pollita@php.net>
Wed, 28 Jan 2004 22:50:12 +0000 (22:50 +0000)
committerSara Golemon <pollita@php.net>
Wed, 28 Jan 2004 22:50:12 +0000 (22:50 +0000)
ext/standard/ftp_fopen_wrapper.c

index 533a98c505ae542ceeb16af453b515f7d66a729f..303255065443de29df9aea79187107cce0d37786 100644 (file)
@@ -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);
 }
 /* }}} */