]> Git Repo - qemu.git/commit - block/vmdk.c
error: Avoid error_propagate() after migrate_add_blocker()
authorMarkus Armbruster <[email protected]>
Tue, 7 Jul 2020 16:06:10 +0000 (18:06 +0200)
committerMarkus Armbruster <[email protected]>
Fri, 10 Jul 2020 13:18:08 +0000 (15:18 +0200)
commit386f6c07d28cf1b51e5d0f398faf67d396ff62a1
treef6afb51151218570ec647f0788580876f763ca07
parent7b3cb8037c369cbc3072548ef0bd2cfa850bfae5
error: Avoid error_propagate() after migrate_add_blocker()

When migrate_add_blocker(blocker, &errp) is followed by
error_propagate(errp, err), we can often just as well do
migrate_add_blocker(..., errp).

Do that with this Coccinelle script:

    @@
    expression blocker, err, errp;
    expression ret;
    @@
    -    ret = migrate_add_blocker(blocker, &err);
    -    if (err) {
    +    ret = migrate_add_blocker(blocker, errp);
    +    if (ret < 0) {
             ... when != err;
    -        error_propagate(errp, err);
             ...
         }

    @@
    expression blocker, err, errp;
    @@
    -    migrate_add_blocker(blocker, &err);
    -    if (err) {
    +    if (migrate_add_blocker(blocker, errp) < 0) {
             ... when != err;
    -        error_propagate(errp, err);
             ...
         }

Double-check @err is not used afterwards.  Dereferencing it would be
use after free, but checking whether it's null would be legitimate.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20200707160613[email protected]>
13 files changed:
block/parallels.c
block/qcow.c
block/vdi.c
block/vhdx.c
block/vmdk.c
block/vpc.c
block/vvfat.c
hw/display/virtio-gpu-base.c
hw/intc/arm_gic_kvm.c
hw/intc/arm_gicv3_its_kvm.c
hw/intc/arm_gicv3_kvm.c
hw/misc/ivshmem.c
hw/scsi/vhost-scsi.c
This page took 0.030175 seconds and 4 git commands to generate.