fc42fcf71b
Update to v2.1.0-rc1 OBS-URL: https://build.opensuse.org/request/show/240239 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=216
51 lines
2.0 KiB
Diff
51 lines
2.0 KiB
Diff
From 8dea7848783572c41b08817d269305ddec5d0dc7 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
|
Date: Wed, 9 Jul 2014 21:21:00 +0200
|
|
Subject: [PATCH] tests: Fix unterminated string output visitor enum human
|
|
string
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The buffer was being allocated of size string length plus two.
|
|
Around the string two quotes were being added, but no terminating NUL.
|
|
It was then compared using g_assert_cmpstr(), resulting in fairly random
|
|
assertion failures:
|
|
|
|
ERROR:tests/test-string-output-visitor.c:213:test_visitor_out_enum: assertion failed (str == str_human): ("\"value1\"" == "\"value1\"\001EEEEEEEEEEEEEE\0171")
|
|
|
|
There is no g_assert_cmpnstr() counterpart, so use g_strdup_printf()
|
|
for safely assembling the string in the first place.
|
|
|
|
Cc: Hu Tao <hutao@cn.fujitsu.com>
|
|
Cc: Michael S. Tsirkin <mst@redhat.com>
|
|
Suggested-by: Eric Blake <eblake@redhat.com>
|
|
Fixes: b4900c0 tests: add human format test for string output visitor
|
|
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
|
---
|
|
tests/test-string-output-visitor.c | 7 +------
|
|
1 file changed, 1 insertion(+), 6 deletions(-)
|
|
|
|
diff --git a/tests/test-string-output-visitor.c b/tests/test-string-output-visitor.c
|
|
index e89e43c..101fb27 100644
|
|
--- a/tests/test-string-output-visitor.c
|
|
+++ b/tests/test-string-output-visitor.c
|
|
@@ -196,16 +196,11 @@ static void test_visitor_out_enum(TestOutputVisitorData *data,
|
|
|
|
for (i = 0; i < ENUM_ONE_MAX; i++) {
|
|
char *str_human;
|
|
- int len;
|
|
|
|
visit_type_EnumOne(data->ov, &i, "unused", &err);
|
|
g_assert(!err);
|
|
|
|
- len = strlen(EnumOne_lookup[i]) + 2;
|
|
- str_human = g_malloc0(len);
|
|
- str_human[0] = '"';
|
|
- strncpy(str_human + 1, EnumOne_lookup[i], strlen(EnumOne_lookup[i]));
|
|
- str_human[len - 1] = '"';
|
|
+ str_human = g_strdup_printf("\"%s\"", EnumOne_lookup[i]);
|
|
|
|
str = string_output_get_string(data->sov);
|
|
g_assert(str != NULL);
|