From: Markus Armbruster Date: Mon, 19 May 2014 16:57:36 +0000 (+0200) Subject: char: Explain qmp_chardev_add()'s unusual error handling X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3894c78764e1e6d8ef82c7c097749d10cf8c3981;p=qemu.git char: Explain qmp_chardev_add()'s unusual error handling Character backend open hasn't been fully converted to the Error API. Some opens fail without setting an error. qmp_chardev_add() needs to detect when that happens, and set a generic error. Explain that in a comment, and inline error_is_set() for clarity. Signed-off-by: Markus Armbruster Signed-off-by: Gerd Hoffmann --- diff --git a/qemu-char.c b/qemu-char.c index 5a7975f393..17b476edf0 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3798,7 +3798,13 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, break; } - if (chr == NULL && !error_is_set(errp)) { + /* + * Character backend open hasn't been fully converted to the Error + * API. Some opens fail without setting an error. Set a generic + * error then. + * TODO full conversion to Error API + */ + if (chr == NULL && errp && !*errp) { error_setg(errp, "Failed to create chardev"); } if (chr) {