Index: usr.bin/diff/diffreg.c =================================================================== --- usr.bin/diff/diffreg.c +++ usr.bin/diff/diffreg.c @@ -1614,7 +1614,7 @@ char buf2[256]; char end1[10]; char end2[10]; - struct tm *tm_ptr1, *tm_ptr2; + struct tm tm1, tm2, *tm_ptr1, *tm_ptr2; int nsec1 = TIMESPEC_NS (stb1.st_mtime); int nsec2 = TIMESPEC_NS (stb2.st_mtime); @@ -1626,8 +1626,8 @@ if (cflag) time_format = "%c"; - tm_ptr1 = localtime(&stb1.st_mtime); - tm_ptr2 = localtime(&stb2.st_mtime); + tm_ptr1 = localtime_r(&stb1.st_mtime, &tm1); + tm_ptr2 = localtime_r(&stb2.st_mtime, &tm2); strftime(buf1, 256, time_format, tm_ptr1); strftime(buf2, 256, time_format, tm_ptr2); if (!cflag) { Index: usr.bin/diff/tests/Makefile =================================================================== --- usr.bin/diff/tests/Makefile +++ usr.bin/diff/tests/Makefile @@ -19,7 +19,8 @@ simple_p.out \ unified_p.out \ unified_c9999.out \ - unified_9999.out + unified_9999.out \ + header.out NETBSD_ATF_TESTS_SH+= netbsd_diff_test Index: usr.bin/diff/tests/diff_test.sh =================================================================== --- usr.bin/diff/tests/diff_test.sh +++ usr.bin/diff/tests/diff_test.sh @@ -2,6 +2,7 @@ atf_test_case simple atf_test_case unified +atf_test_case header simple_body() { @@ -46,8 +47,20 @@ diff -u9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in" } +header_body() +{ + export TZ=UTC + : > empty + echo hello > hello + touch -d 2015-04-03T01:02:03 empty + touch -d 2016-12-22T11:22:33 hello + atf_check -o "file:$(atf_get_srcdir)/header.out" -s eq:1 \ + diff -u empty hello +} + atf_init_test_cases() { atf_add_test_case simple atf_add_test_case unified + atf_add_test_case header } Index: usr.bin/diff/tests/header.out =================================================================== --- /dev/null +++ usr.bin/diff/tests/header.out @@ -0,0 +1,4 @@ +--- empty 2015-04-03 01:02:03.000000000 +0000 ++++ hello 2016-12-22 11:22:33.000000000 +0000 +@@ -0,0 +1 @@ ++hello