Message ID | 20200814160241.7915-10-pannengyuan@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fix some error memleaks | expand |
Am 14.08.2020 um 18:02 hat Pan Nengyuan geschrieben: > 'local_err' seems forgot to propagate in error path, it'll cause > a memleak. Fix it. > > Reported-by: Euler Robot <euler.robot@huawei.com> > Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com> I wonder if using ERRP_GUARD() wouldn't simplify this. Anyway, the fix looks correct: Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Pan Nengyuan <pannengyuan@huawei.com> 于2020年8月14日周五 下午6:54写道: > > 'local_err' seems forgot to propagate in error path, it'll cause > a memleak. Fix it. > > Reported-by: Euler Robot <euler.robot@huawei.com> > Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> > --- > Cc: Kevin Wolf <kwolf@redhat.com> > Cc: Max Reitz <mreitz@redhat.com> > Cc: Markus Armbruster <armbru@redhat.com> > Cc: qemu-block@nongnu.org > --- > blockdev.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/blockdev.c b/blockdev.c > index 3848a9c8ab..842ac289c1 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -1801,6 +1801,7 @@ static void drive_backup_prepare(BlkActionState *common, Error **errp) > if (set_backing_hd) { > bdrv_set_backing_hd(target_bs, source, &local_err); > if (local_err) { > + error_propagate(errp, local_err); > goto unref; > } > } > -- > 2.18.2 > >
diff --git a/blockdev.c b/blockdev.c index 3848a9c8ab..842ac289c1 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1801,6 +1801,7 @@ static void drive_backup_prepare(BlkActionState *common, Error **errp) if (set_backing_hd) { bdrv_set_backing_hd(target_bs, source, &local_err); if (local_err) { + error_propagate(errp, local_err); goto unref; } }
'local_err' seems forgot to propagate in error path, it'll cause a memleak. Fix it. Reported-by: Euler Robot <euler.robot@huawei.com> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com> --- Cc: Kevin Wolf <kwolf@redhat.com> Cc: Max Reitz <mreitz@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Cc: qemu-block@nongnu.org --- blockdev.c | 1 + 1 file changed, 1 insertion(+)