[PATCH 4/7] shell32: Prevent user after free in error case (Coverity)

Fabian Maurer dark.shadow4 at web.de
Mon Apr 25 15:00:40 CDT 2022


> > --- a/dlls/shell32/shellitem.c
> > +++ b/dlls/shell32/shellitem.c
> > @@ -1402,9 +1402,11 @@ HRESULT WINAPI
> > SHCreateShellItemArrayFromIDLists(UINT cidl,>
> >       if(SUCCEEDED(ret))
> >       {
> >
> >           ret = create_shellitemarray(array, cidl, psia);
> >
> > -        heap_free(array);
> >
> >           if(SUCCEEDED(ret))
> >
> > +        {
> > +            heap_free(array);
> >
> >               return ret;
> >
> > +        }
> >
> >       }
> >
> >       for(i = 0; i < cidl; i++)
> >
> > --
> > 2.36.0
>
> It would be shorter to release array elements when FAILED(), and have a
> single call to free pointers array.

We have a very similar case in SHCreateShellItemArray, want me to rewrite that
to use the same approach then?

Regards,
Fabian Maurer





More information about the wine-devel mailing list