> -----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

Reply via email to