[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: log --search test failures on trunk and 1.8.x

From: Bert Huijben <bert_at_qqmail.nl>
Date: Sat, 20 Apr 2013 13:19:15 +0200

> -----Original Message-----
> From: Stefan Sperling [mailto:stsp_at_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
Received on 2013-04-20 13:20:16 CEST

This is an archived mail posted to the Subversion Dev mailing list.