From: Matthias Bolte Date: Fri, 27 May 2011 13:08:43 +0000 (+0200) Subject: sexpr: Improve serialization error reporting X-Git-Tag: CVE-2011-2178~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf9aa214335cbd1d3e401bb5563462fb8db01e64;p=thirdparty%2Flibvirt.git sexpr: Improve serialization error reporting --- diff --git a/src/util/sexpr.c b/src/util/sexpr.c index d8d4c2d7d8..0e300870fa 100644 --- a/src/util/sexpr.c +++ b/src/util/sexpr.c @@ -215,7 +215,7 @@ sexpr2string(const struct sexpr *sexpr, virBufferPtr buffer) virBufferAddChar(buffer, '('); if (sexpr2string(sexpr->u.s.car, buffer) < 0) - goto error; + return -1; while (sexpr->u.s.cdr->kind != SEXPR_NIL) { sexpr = sexpr->u.s.cdr; @@ -223,7 +223,7 @@ sexpr2string(const struct sexpr *sexpr, virBufferPtr buffer) virBufferAddChar(buffer, ' '); if (sexpr2string(sexpr->u.s.car, buffer) < 0) - goto error; + return -1; } virBufferAddChar(buffer, ')'); @@ -241,14 +241,12 @@ sexpr2string(const struct sexpr *sexpr, virBufferPtr buffer) virBufferAddLit(buffer, "()"); break; default: - goto error; + virSexprError(VIR_ERR_SEXPR_SERIAL, + _("unknown s-expression kind %d"), sexpr->kind); + return -1; } return 0; - - error: - virSexprError(VIR_ERR_SEXPR_SERIAL, NULL); - return -1; } #define IS_SPACE(c) ((c == 0x20) || (c == 0x9) || (c == 0xD) || (c == 0xA))