We're updating the issue view to help you get more done. 

ASAN failure on cmsgtst/MessageFormatTest


Address sanitizer failure on Macintosh, in cmsgtst/MessageFormatTest

1 2 3 4 5 6 7 8 9 cmsgtst { OpenMessageFormatTest ---[OK] MessageFormatTest ASAN:DEADLYSIGNAL ================================================================= ==84680==ERROR: AddressSanitizer: SEGV on unknown address 0x7ffe00000000 (pc 0x000100eb5833 bp 0x7ffeef81b170 sp 0x7ffeef81aca0 T0) ==84680==The signal is caused by a WRITE memory access. #0 0x100eb5832 in umsg_vparse_61 umsg.cpp:563 #1 0x100eb7ea7 in umsg_parse_61 umsg.cpp:502 #2 0x1004b22e4 in MessageFormatTest cmsgtst.c:245

The test code indicates this test is troublesome:

1 2 3 4 5 6 7 8 9 10 11 12 13 if (returnsNullForType(1, (double)2.0)) { /* HP/UX and possibly other platforms don't properly check for this case. We pass in a UDate, but the function expects a UDate *. When va_arg is used, most compilers will return NULL, but HP-UX won't do that and will return 2 in this case. This is a platform dependent test. It crashes on some systems. If you get a crash here, see the definition of returnsNullForType. This relies upon "undefined" behavior, as indicated by C99 paragraph 2 */ umsg_parse(formatter,result,resultLength,&count,&ec,one,two,d2); if(ec!=U_ILLEGAL_ARGUMENT_ERROR){ log_err("FAIL: Did not get expected error for umsg_parse(). Expected: U_ILLEGAL_ARGUMENT_ERROR Got: %s \n",u_errorName(ec));

It would be good to clean this up. Address sanitizer failures are fatal, so this prevents the running of subsequent tests.



Andy Heninger


Andy Heninger


Fix versions