Skip to content

Commit 953cd66

Browse files
author
Markus Armbruster
committed
sd/milkymist-memcard: Fix error API violation
The Error ** argument must be NULL, &error_abort, &error_fatal, or a pointer to a variable containing NULL. Passing an argument of the latter kind twice without clearing it in between is wrong: if the first call sets an error, it no longer points to NULL for the second call. milkymist_memcard_realize() is wrong that way: it passes &err to qdev_prop_set_drive_err() and qdev_realize_and_unref(). Currently harmless, because the latter uses it only as first argument of error_propagate(). Making qdev_prop_set_drive_err() fail involves abuse of -global. Leave handling that to qdev_prop_set_drive(), like we do elsewhere. Cc: Michael Walle <[email protected]> Signed-off-by: Markus Armbruster <[email protected]> Message-Id: <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
1 parent 17d26ac commit 953cd66

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

hw/sd/milkymist-memcard.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ static void milkymist_memcard_realize(DeviceState *dev, Error **errp)
279279
dinfo = drive_get_next(IF_SD);
280280
blk = dinfo ? blk_by_legacy_dinfo(dinfo) : NULL;
281281
carddev = qdev_new(TYPE_SD_CARD);
282-
qdev_prop_set_drive_err(carddev, "drive", blk, &err);
282+
qdev_prop_set_drive(carddev, "drive", blk);
283283
qdev_realize_and_unref(carddev, BUS(&s->sdbus), &err);
284284
if (err) {
285285
error_setg(errp, "failed to init SD card: %s", error_get_pretty(err));

0 commit comments

Comments
 (0)