> -----Original Message----- > From: Stefan Sperling [mailto:s...@apache.org] > Sent: zaterdag 20 april 2013 12:28 > To: Ivan Zhakov > Cc: Subversion Development > Subject: Re: log --search test failures on trunk and 1.8.x > > On Tue, Apr 16, 2013 at 02:15:17PM +0400, Ivan Zhakov wrote: > > Hi, > > > > I got following failures when running Debug build with VC 2010: > > FAIL: log_tests.py 40: test 'svn log -g --search' > > FAIL: log_tests.py 39: 'svn log --search' > > > > They fail because of assertion in VC runtime: > > [[[ > > W: f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c(68) : Assertion > > failed: (unsigned)(c + 1) <= 256 > > ]]] > > Seems like a bogus check to me. Is there a notion of debug vs. release > builds in Visual Studio, and if so, does this happen in release mode > builds? > > tolower() is supposed to return the byte unchanged in case it cannot > be converted to a lower-case representation. I would expect that > to happen in your case. > > See > http://pubs.opengroup.org/onlinepubs/9699919799/functions/tolower.html > It doesn't say "fail if the value overflows".
Looking at this reference you handed: --- The tolower() [CX] [Option Start] and tolower_l() [Option End] functions have as a domain a type int, the value of which is representable as an unsigned char or the value of EOF. If the argument has any other value, the behavior is undefined. --- So theoretically it is allowed to eat your harddrive, kill some hardware, or whatever if you pass it an invalid value. Note that apr has a wrapper of this function which documents more of its behavior. Bert