From 7efd5fd1b0225436cbbae1181ab41c2d3eca43f9 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 16 Aug 2013 12:13:27 +0200 Subject: [PATCH] virbitmaptest: Add test for out of bounds condition Previous patch fixed an issue where, when parsing a bitmap from the string, the bounds of the bitmap weren't checked. That flaw resulted into crashes. This test tests that case to avoid it in the future. --- tests/virbitmaptest.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/virbitmaptest.c b/tests/virbitmaptest.c index 8cfd8b5b64..c56d6fa284 100644 --- a/tests/virbitmaptest.c +++ b/tests/virbitmaptest.c @@ -464,6 +464,38 @@ cleanup: return ret; } + +/* test out of bounds conditions on virBitmapParse */ +static int +test9(const void *opaque ATTRIBUTE_UNUSED) +{ + int ret = -1; + virBitmapPtr bitmap; + + if (virBitmapParse("100000000", 0, &bitmap, 20) != -1) + goto cleanup; + + if (bitmap) + goto cleanup; + + if (virBitmapParse("1-1000000000", 0, &bitmap, 20) != -1) + goto cleanup; + + if (bitmap) + goto cleanup; + + if (virBitmapParse("1-10^10000000000", 0, &bitmap, 20) != -1) + goto cleanup; + + if (bitmap) + goto cleanup; + + ret = 0; +cleanup: + return ret; + +} + static int mymain(void) { @@ -485,6 +517,8 @@ mymain(void) ret = -1; if (virtTestRun("test8", 1, test8, NULL) < 0) ret = -1; + if (virtTestRun("test9", 1, test9, NULL) < 0) + ret = -1; return ret; } -- GitLab