From 6246f8ebcdf9d0356285e5089fa15b554e376155 Mon Sep 17 00:00:00 2001 From: Laurence Withers Date: Mon, 7 Jan 2008 13:16:18 +0000 Subject: [PATCH] Fix missing null termination when tz_sec = 0, add test for it --- src/libiso8601/200_print.c | 1 + src/tests/printer.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libiso8601/200_print.c b/src/libiso8601/200_print.c index 9998e2e..759bc49 100644 --- a/src/libiso8601/200_print.c +++ b/src/libiso8601/200_print.c @@ -155,6 +155,7 @@ char* iso8601_print(char* str, int amt, const struct iso8601_date* date, else snprintf(str, amt, "%02d", y); } else { *str++ = 'Z'; + *str++ = 0; } return str_orig; diff --git a/src/tests/printer.c b/src/tests/printer.c index 1b7a7b6..f4f403b 100644 --- a/src/tests/printer.c +++ b/src/tests/printer.c @@ -204,7 +204,7 @@ int main(int argc, char* argv[]) int ret = 0; struct iso8601_date dt; struct iso8601_details details, details2; - char buf[100], buf2[100]; + char buf[40], buf2[40]; const struct test* test; if(argc == 2 && !strcmp(argv[1], "--print-summary")) { @@ -215,7 +215,11 @@ int main(int argc, char* argv[]) iso8601_now(&dt, &details); printf("%-30s %-30s %s\n", "Name", "Basic format", "Extended format"); for(test = tests; test->desc; ++test) { + memset(buf, 'X', sizeof(buf)); + memset(buf2, 'X', sizeof(buf2)); /* test null-termination */ + test->do_details(&details2, &details); + iso8601_print(buf, sizeof(buf), &dt, &details2); ++details2.extended; iso8601_print(buf2, sizeof(buf2), &dt, &details2);