It's unlikely that we'll ever want to escape a string as long as INT_MAX/6, but adding this check can't hurt. * src/util/buf.c (virBufferEscapeSexpr, virBufferEscapeString): Check for (unlikely) overflow. --- src/util/buf.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/util/buf.c b/src/util/buf.c index 750e277..5002486 100644 --- a/src/util/buf.c +++ b/src/util/buf.c @@ -311,7 +311,8 @@ virBufferEscapeString(const virBufferPtr buf, const char *format, const char *st return; } - if (VIR_ALLOC_N(escaped, 6 * len + 1) < 0) { + if (xalloc_oversized(6, len) || + VIR_ALLOC_N(escaped, 6 * len + 1) < 0) { virBufferSetError(buf); return; } @@ -398,7 +399,8 @@ virBufferEscapeSexpr(const virBufferPtr buf, return; } - if (VIR_ALLOC_N(escaped, 2 * len + 1) < 0) { + if (xalloc_oversized(2, len) || + VIR_ALLOC_N(escaped, 2 * len + 1) < 0) { virBufferSetError(buf); return; } -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list