diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/timer/mc146818rtc.c | 24 | ||||
-rw-r--r-- | hw/virtio/virtio-balloon.c | 12 |
2 files changed, 30 insertions, 6 deletions
diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c index 6c3e3b6d75..df54546562 100644 --- a/hw/timer/mc146818rtc.c +++ b/hw/timer/mc146818rtc.c @@ -804,13 +804,33 @@ static void rtc_get_date(Object *obj, Visitor *v, void *opaque, goto out; } visit_type_int32(v, ¤t_tm.tm_year, "tm_year", &err); + if (err) { + goto out_end; + } visit_type_int32(v, ¤t_tm.tm_mon, "tm_mon", &err); + if (err) { + goto out_end; + } visit_type_int32(v, ¤t_tm.tm_mday, "tm_mday", &err); + if (err) { + goto out_end; + } visit_type_int32(v, ¤t_tm.tm_hour, "tm_hour", &err); + if (err) { + goto out_end; + } visit_type_int32(v, ¤t_tm.tm_min, "tm_min", &err); + if (err) { + goto out_end; + } visit_type_int32(v, ¤t_tm.tm_sec, "tm_sec", &err); - visit_end_struct(v, &err); - + if (err) { + goto out_end; + } +out_end: + error_propagate(errp, err); + err = NULL; + visit_end_struct(v, errp); out: error_propagate(errp, err); } diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index ca99bd5f97..bf2b588b24 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -121,23 +121,27 @@ static void balloon_stats_get_all(Object *obj, struct Visitor *v, if (err) { goto out; } - visit_type_int(v, &s->stats_last_update, "last-update", &err); + if (err) { + goto out_end; + } visit_start_struct(v, NULL, NULL, "stats", 0, &err); if (err) { goto out_end; } - - for (i = 0; i < VIRTIO_BALLOON_S_NR; i++) { + for (i = 0; !err && i < VIRTIO_BALLOON_S_NR; i++) { visit_type_int64(v, (int64_t *) &s->stats[i], balloon_stat_names[i], &err); } + error_propagate(errp, err); + err = NULL; visit_end_struct(v, &err); out_end: + error_propagate(errp, err); + err = NULL; visit_end_struct(v, &err); - out: error_propagate(errp, err); } |