Author: dim
Date: Sun Mar 24 01:35:37 2013
New Revision: 248672
URL: http://svnweb.freebsd.org/changeset/base/248672

Log:
  Compile contrib/tzcode/stdtime/localtime.c with -fwrapv, since it relies
  on signed integer overflow wrapping.  Otherwise mktime(3) and timegm(3)
  can hang, in case the timestamp passed in struct tm is not representable
  in a time_t.  Specifically, any timestamp after 2038-01-19 03:14:07, in
  combination with a 32-bit time_t.
  
  Note that it would be better to change the code to not rely on undefined
  behaviour, but it is contributed code, and it is not entirely trivial to
  fix the issue properly.
  
  MFC after:    3 days

Modified:
  head/lib/libc/stdtime/Makefile.inc

Modified: head/lib/libc/stdtime/Makefile.inc
==============================================================================
--- head/lib/libc/stdtime/Makefile.inc  Sun Mar 24 00:03:12 2013        
(r248671)
+++ head/lib/libc/stdtime/Makefile.inc  Sun Mar 24 01:35:37 2013        
(r248672)
@@ -11,6 +11,9 @@ SYM_MAPS+= ${.CURDIR}/stdtime/Symbol.map
 
 CFLAGS+= -I${.CURDIR}/../../contrib/tzcode/stdtime -I${.CURDIR}/stdtime
 
+CFLAGS.localtime.c= -fwrapv
+CFLAGS+= ${CFLAGS.${.IMPSRC:T}}
+
 MAN+=  ctime.3 strftime.3 strptime.3 time2posix.3
 MAN+=  tzfile.5
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to