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.
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
