diff --git a/fastjar/ChangeLog b/fastjar/ChangeLog index 7fdadd228aa..d6482fa313c 100644 --- a/fastjar/ChangeLog +++ b/fastjar/ChangeLog @@ -1,3 +1,43 @@ +2003-01-21 Ranjit Mathew + + * jartool.c (list_jar): Terminate the 'ascii_date' buffer + with a '\0' to guard against the case where the formatted + time string is more than the size allowed by the buffer. + +Patch: +-------------------------- 8< -------------------------- +--- ChangeLog Mon Jan 20 23:27:56 2003 ++++ ChangeLog Mon Jan 20 23:31:42 2003 +@@ -1572,5 +1572,5 @@ + time_t tdate; + struct tm *s_tm; +- char ascii_date[30]; ++ char ascii_date[31]; + zipentry ze; + +@@ -1663,4 +1663,5 @@ + s_tm = localtime(&tdate); + strftime(ascii_date, 30, "%a %b %d %H:%M:%S %Z %Y", s_tm); ++ ascii_date[30] = '\0'; + } + +@@ -1782,4 +1783,5 @@ + s_tm = localtime(&tdate); + strftime(ascii_date, 30, "%a %b %d %H:%M:%S %Z %Y", s_tm); ++ ascii_date[30] = '\0'; + } + +-------------------------- 8< -------------------------- + +Sincerely Yours, +Ranjit. + +-- +Ranjit Mathew Email: rmathew AT hotmail DOT com +Bangalore, +INDIA. Web: http://ranjitmathew.tripod.com/ + + 2003-01-14 Tom Tromey * config.h.in: Rebuilt. diff --git a/fastjar/jartool.c b/fastjar/jartool.c index dcca13d1c5e..3e946ab4f06 100644 --- a/fastjar/jartool.c +++ b/fastjar/jartool.c @@ -1564,7 +1564,7 @@ int list_jar(int fd, char **files, int file_num){ int i, j; time_t tdate; struct tm *s_tm; - char ascii_date[30]; + char ascii_date[31]; zipentry ze; #ifdef DEBUG @@ -1655,6 +1655,7 @@ int list_jar(int fd, char **files, int file_num){ tdate = dos2unixtime(mdate); s_tm = localtime(&tdate); strftime(ascii_date, 30, "%a %b %d %H:%M:%S %Z %Y", s_tm); + ascii_date[30] = '\0'; } if(filename_len < fnlen + 1){ @@ -1781,6 +1782,7 @@ int list_jar(int fd, char **files, int file_num){ free(filename); filename = malloc(sizeof(ub1) * (fnlen + 1)); + ascii_date[30] = '\0'; filename_len = fnlen + 1; }