On Thu, Mar 31, 2011 at 3:57 AM, Erkki Seppala <[email protected]> wrote: > On 30.03.2011 16:18, Dan Nicholson wrote: >> >> <[email protected]> wrote: >>> >>> diff --git a/hw/xfree86/common/xf86Config.c >>> b/hw/xfree86/common/xf86Config.c >>> index 7a23253..114bdc3 100644 >>> --- a/hw/xfree86/common/xf86Config.c >>> +++ b/hw/xfree86/common/xf86Config.c >>> @@ -1459,8 +1459,9 @@ configInputDevices(XF86ConfLayoutPtr layout, >>> serverLayoutPtr servlayoutp) >>> while (irp) { >>> indp[count] = xf86AllocateInput(); >>> if (!configInput(indp[count], irp->iref_inputdev, X_CONFIG)) { >>> - while(count--) >>> + do { >>> free(indp[count]); >>> + } while(count--); >>> free(indp); >>> return FALSE; >>> } >> >> Since the original code was doing a post-test decrement, wouldn't it >> have wound all the way down to "free(indp[0])"? If it was "while >> (--count)", I'd agree this is needed. > > If count = 1, the original code would wind up releasing only indp[0]. The > revised code releases both indp[0] and indp[1], where indp[1] is allocated > just a few lines above.
Oh, right that's what I was missing. With the corrected blame commit, Reviewed-by: Dan Nicholson <[email protected]> _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
