[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/3] qdist: return "(empty)" instead of NULL when pr
From: |
Emilio G. Cota |
Subject: |
[Qemu-devel] [PATCH 3/3] qdist: return "(empty)" instead of NULL when printing an empty dist |
Date: |
Mon, 25 Jul 2016 11:03:45 -0400 |
Printf'ing a NULL string is undefined behaviour. Avoid it.
Reported-by: Peter Maydell <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
---
tests/test-qdist.c | 10 ++++++++--
util/qdist.c | 6 ++++--
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/tests/test-qdist.c b/tests/test-qdist.c
index 0298986..9541ce3 100644
--- a/tests/test-qdist.c
+++ b/tests/test-qdist.c
@@ -360,10 +360,16 @@ static void test_none(void)
g_assert(isnan(qdist_xmax(&dist)));
pr = qdist_pr_plain(&dist, 0);
- g_assert(pr == NULL);
+ g_assert_cmpstr(pr, ==, "(empty)");
+ g_free(pr);
pr = qdist_pr_plain(&dist, 2);
- g_assert(pr == NULL);
+ g_assert_cmpstr(pr, ==, "(empty)");
+ g_free(pr);
+
+ pr = qdist_pr(&dist, 0, QDIST_PR_BORDER);
+ g_assert_cmpstr(pr, ==, "(empty)");
+ g_free(pr);
qdist_destroy(&dist);
}
diff --git a/util/qdist.c b/util/qdist.c
index cc31140..41eff08 100644
--- a/util/qdist.c
+++ b/util/qdist.c
@@ -14,6 +14,8 @@
#define NAN (0.0 / 0.0)
#endif
+#define QDIST_EMPTY_STR "(empty)"
+
void qdist_init(struct qdist *dist)
{
dist->entries = g_malloc(sizeof(*dist->entries));
@@ -234,7 +236,7 @@ char *qdist_pr_plain(const struct qdist *dist, size_t n)
char *ret;
if (dist->n == 0) {
- return NULL;
+ return g_strdup(QDIST_EMPTY_STR);
}
qdist_bin__internal(&binned, dist, n);
ret = qdist_pr_internal(&binned);
@@ -309,7 +311,7 @@ char *qdist_pr(const struct qdist *dist, size_t n_bins,
uint32_t opt)
GString *s;
if (dist->n == 0) {
- return NULL;
+ return g_strdup(QDIST_EMPTY_STR);
}
s = g_string_new("");
--
2.5.0