[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 06/13] qdict: fix unbounded stack warning for qdict_a
From: |
Michael Tokarev |
Subject: |
[Qemu-devel] [PULL 06/13] qdict: fix unbounded stack warning for qdict_array_entries |
Date: |
Wed, 18 May 2016 15:06:01 +0300 |
From: Peter Xu <address@hidden>
Here we use one g_strdup_printf() to replace the two stack allocated
array, considering it's more convenient, safe, and as long as it's
called rarely only when quorum device opens. This will remove the
unbound stack warning when compiling with "-Wstack-usage=1000000".
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
qobject/qdict.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/qobject/qdict.c b/qobject/qdict.c
index a128536..60f158c 100644
--- a/qobject/qdict.c
+++ b/qobject/qdict.c
@@ -705,19 +705,16 @@ int qdict_array_entries(QDict *src, const char *subqdict)
for (i = 0; i < INT_MAX; i++) {
QObject *subqobj;
int subqdict_entries;
- size_t slen = 32 + subqdict_len;
- char indexstr[slen], prefix[slen];
- size_t snprintf_ret;
+ char *prefix = g_strdup_printf("%s%u.", subqdict, i);
- snprintf_ret = snprintf(indexstr, slen, "%s%u", subqdict, i);
- assert(snprintf_ret < slen);
+ subqdict_entries = qdict_count_prefixed_entries(src, prefix);
- subqobj = qdict_get(src, indexstr);
+ /* Remove ending "." */
+ prefix[strlen(prefix) - 1] = 0;
+ subqobj = qdict_get(src, prefix);
- snprintf_ret = snprintf(prefix, slen, "%s%u.", subqdict, i);
- assert(snprintf_ret < slen);
+ g_free(prefix);
- subqdict_entries = qdict_count_prefixed_entries(src, prefix);
if (subqdict_entries < 0) {
return subqdict_entries;
}
--
2.1.4
- [Qemu-devel] [PULL 00/13] Trivial patches for 2016-05-18, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 08/13] ipack: Update e-mail address, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 13/13] Fix some typos found by codespell, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 11/13] smbios: fix typo, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 04/13] vl: fix comment about when parsing cpu definitions, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 05/13] Fix typo in variable name (found and fixed by codespell), Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 06/13] qdict: fix unbounded stack warning for qdict_array_entries,
Michael Tokarev <=
- [Qemu-devel] [PULL 10/13] accel: make configure_accelerator return void, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 12/13] 9p: drop unused declaration from coth.h, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 03/13] loader: fix potential memory leak, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 02/13] remove comment for nonexistent structure member, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 01/13] s390: remove misleading comment, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 09/13] configure: Use uniform description for devel packages, Michael Tokarev, 2016/05/18
- [Qemu-devel] [PULL 07/13] util: fix comment typos, Michael Tokarev, 2016/05/18
- Re: [Qemu-devel] [PULL 00/13] Trivial patches for 2016-05-18, Peter Maydell, 2016/05/19