|
From: | Richard Frith-Macdonald |
Subject: | Re: Re2: Crash when trying to load corrupt file with NSDictionary -initWithContentsOfFile: |
Date: | Thu, 30 Jun 2005 09:34:27 +0100 |
Hi Richard...Richard Frith-Macdonald <richard@brainstorm.co.uk> wrote on 30.06.2005 09:46:52:On 2005-06-30 08:02:40 +0100 Roland Schwingel <roland.schwingel@onevision.de> wrote:[...] Hope this patch can be appliedI applied a slightly different (more general purpose I hope) fix, intended to catch all cases of bad cross references. It's in CVS ... I'd appreciate feedback on how it works for you...Unfortunately it does not work and the reason is clear. With my corrupt fileinfo->didUnique is set to 0 in initDeserializerInfo(), so the GSIArray is also not initialized and calling GSIArrayCount(&info->array) accesses uninitialized data. Access to the GSIArray should only be done after checking the didUnique flag.
Thanks ... I missed that the array could be uninitialised. Should be fixed now to check both that the array is initialised and that the index into it is valid (and raise a different exception message in each case).
[Prev in Thread] | Current Thread | [Next in Thread] |