|
|
43fe83 |
From 4e7a676e72a6c29440fba9ef7942a0e615cd8707 Mon Sep 17 00:00:00 2001
|
|
|
43fe83 |
Message-Id: <4e7a676e72a6c29440fba9ef7942a0e615cd8707.1377873640.git.jdenemar@redhat.com>
|
|
|
43fe83 |
From: Peter Krempa <pkrempa@redhat.com>
|
|
|
43fe83 |
Date: Fri, 16 Aug 2013 15:31:00 +0200
|
|
|
43fe83 |
Subject: [PATCH] virbitmaptest: Add test for out of bounds condition
|
|
|
43fe83 |
|
|
|
43fe83 |
https://bugzilla.redhat.com/show_bug.cgi?id=997906
|
|
|
43fe83 |
|
|
|
43fe83 |
Previous patch fixed an issue where, when parsing a bitmap from the
|
|
|
43fe83 |
string, the bounds of the bitmap weren't checked. That flaw resulted into
|
|
|
43fe83 |
crashes. This test tests that case to avoid it in the future.
|
|
|
43fe83 |
|
|
|
43fe83 |
(cherry picked from commit 7efd5fd1b0225436cbbae1181ab41c2d3eca43f9)
|
|
|
43fe83 |
---
|
|
|
43fe83 |
tests/virbitmaptest.c | 34 ++++++++++++++++++++++++++++++++++
|
|
|
43fe83 |
1 file changed, 34 insertions(+)
|
|
|
43fe83 |
|
|
|
43fe83 |
diff --git a/tests/virbitmaptest.c b/tests/virbitmaptest.c
|
|
|
43fe83 |
index 8cfd8b5..c56d6fa 100644
|
|
|
43fe83 |
--- a/tests/virbitmaptest.c
|
|
|
43fe83 |
+++ b/tests/virbitmaptest.c
|
|
|
43fe83 |
@@ -464,6 +464,38 @@ cleanup:
|
|
|
43fe83 |
return ret;
|
|
|
43fe83 |
}
|
|
|
43fe83 |
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+/* test out of bounds conditions on virBitmapParse */
|
|
|
43fe83 |
+static int
|
|
|
43fe83 |
+test9(const void *opaque ATTRIBUTE_UNUSED)
|
|
|
43fe83 |
+{
|
|
|
43fe83 |
+ int ret = -1;
|
|
|
43fe83 |
+ virBitmapPtr bitmap;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ if (virBitmapParse("100000000", 0, &bitmap, 20) != -1)
|
|
|
43fe83 |
+ goto cleanup;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ if (bitmap)
|
|
|
43fe83 |
+ goto cleanup;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ if (virBitmapParse("1-1000000000", 0, &bitmap, 20) != -1)
|
|
|
43fe83 |
+ goto cleanup;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ if (bitmap)
|
|
|
43fe83 |
+ goto cleanup;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ if (virBitmapParse("1-10^10000000000", 0, &bitmap, 20) != -1)
|
|
|
43fe83 |
+ goto cleanup;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ if (bitmap)
|
|
|
43fe83 |
+ goto cleanup;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+ ret = 0;
|
|
|
43fe83 |
+cleanup:
|
|
|
43fe83 |
+ return ret;
|
|
|
43fe83 |
+
|
|
|
43fe83 |
+}
|
|
|
43fe83 |
+
|
|
|
43fe83 |
static int
|
|
|
43fe83 |
mymain(void)
|
|
|
43fe83 |
{
|
|
|
43fe83 |
@@ -485,6 +517,8 @@ mymain(void)
|
|
|
43fe83 |
ret = -1;
|
|
|
43fe83 |
if (virtTestRun("test8", 1, test8, NULL) < 0)
|
|
|
43fe83 |
ret = -1;
|
|
|
43fe83 |
+ if (virtTestRun("test9", 1, test9, NULL) < 0)
|
|
|
43fe83 |
+ ret = -1;
|
|
|
43fe83 |
|
|
|
43fe83 |
return ret;
|
|
|
43fe83 |
}
|
|
|
43fe83 |
--
|
|
|
43fe83 |
1.8.3.2
|
|
|
43fe83 |
|