diff --git a/lib/ftplistparser.c b/lib/ftplistparser.c index 448f3a43aba0dc828555a9ee3d177b365e88c43e..2d0ec41bbcaf4b57ada34c4711edd33dd902fd7a 100644 --- a/lib/ftplistparser.c +++ b/lib/ftplistparser.c @@ -652,7 +652,7 @@ size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb, switch(parser->state.UNIX.sub.time) { case PL_UNIX_TIME_PREPART1: if(c != ' ') { - if(ISALNUM(c)) { + if(ISALNUM(c) && len) { parser->item_offset = len -1; parser->item_length = 1; parser->state.UNIX.sub.time = PL_UNIX_TIME_PART1; @@ -736,7 +736,7 @@ size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb, case PL_UNIX_FILENAME: switch(parser->state.UNIX.sub.filename) { case PL_UNIX_FILENAME_PRESPACE: - if(c != ' ') { + if(c != ' ' && len) { parser->item_offset = len - 1; parser->item_length = 1; parser->state.UNIX.sub.filename = PL_UNIX_FILENAME_NAME;