[dm-devel] [PATCH 05/16] libmultipath: fix double free in pgpolicyfn error paths

Martin Wilck Martin.Wilck at suse.com
Wed Aug 14 21:21:18 UTC 2019


On Fri, 2019-08-02 at 11:33 -0500, Benjamin Marzinski wrote:
> In the pgpolicy functions, if an error is encountered after
> alloc_pathgroup() is called, but before the path group is added to a
> multipath device with add_pathgroup(), the pathgroup needs to be
> cleaned
> up by calling free_pathgroup(). However, after the pathgroup has been
> added to the multipath device, calling free_pgvec() will clean it up.
> In
> this case, if free_pathgroup() is called first, the recently added
> pathgroup will be freed twice.
> 
> Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
> ---
>  libmultipath/pgpolicies.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)

This is correct, but the code remains quite horrible. One day I'd love
to see "pgp" being a local variable inside the loop. That can be done
after your series though.

Martin





More information about the dm-devel mailing list