En/na Luca Olivetti ha escrit:
Al 18/09/10 14:28, En/na Luca Olivetti ha escrit:


I now tried to initialize ranges with

ranges = [[NSMutableArray alloc] initWithCapacity: numberOfMonthsInRange]

instead of

ranges = [NSMutableArray] arrayWithCapacity: numberOfMonthsInRange]

that gets rid of the 4294967295 issue, but it still smashes the stack
when the method returns (i.e. on the closing bracket at line 433).

That was surely a red-herring (a gdb glitch maybe?).
Now with the original file the count is one.
It seems that during the exit of the method it tries to free some already freed object. Since I don't understand what's happening, this is the state of the locals between the "return ranges" and the "}":

Well, I managed to compile sogo with "-fno-stack-protector" and the problem went away. Of course I'm quite scared to deploy it: it could be that objective-c/gnustep/sogo doesn't play well with -fstack-protector (but notice that everything else but sogo has been built with "-fstack-protector", since it's a default in mandriva 2010.0) or that there's really some stack corruption in that methodcd and masking the problem will lead to data corruption later on.

What do you think?

Bye
--
Luca Olivetti
Wetron Automatización S.A. http://www.wetron.es/
Tel. +34 93 5883004 (Ext.133)  Fax +34 93 5883007
--
[email protected]
https://inverse.ca/sogo/lists

Reply via email to