summary refs log tree commit diff stats
path: root/qobject/qdict.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2016-05-19 09:27:28 +0100
committerPeter Maydell <peter.maydell@linaro.org>2016-05-19 09:27:28 +0100
commit8ec4fe0a4bed4fa27e6f28a746bcf77b27cd05a3 (patch)
tree93a1691d7a5d90ddbb77a3210299089fcede4947 /qobject/qdict.c
parenta257c741491ff1c3c192d13a89c136dd6401c54d (diff)
parentcb8d4c8f54b8271f642f02382eec29d468bb1c77 (diff)
downloadfocaccia-qemu-8ec4fe0a4bed4fa27e6f28a746bcf77b27cd05a3.tar.gz
focaccia-qemu-8ec4fe0a4bed4fa27e6f28a746bcf77b27cd05a3.zip
Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2016-05-18' into staging
trivial patches for 2016-05-18

# gpg: Signature made Wed 18 May 2016 13:04:43 BST using RSA key ID A4C3D7DB
# gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>"
# gpg:                 aka "Michael Tokarev <mjt@corpit.ru>"
# gpg:                 aka "Michael Tokarev <mjt@debian.org>"

* remotes/mjt/tags/pull-trivial-patches-2016-05-18:
  Fix some typos found by codespell
  9p: drop unused declaration from coth.h
  smbios: fix typo
  accel: make configure_accelerator return void
  configure: Use uniform description for devel packages
  ipack: Update e-mail address
  util: fix comment typos
  qdict: fix unbounded stack warning for qdict_array_entries
  Fix typo in variable name (found and fixed by codespell)
  vl: fix comment about when parsing cpu definitions
  loader: fix potential memory leak
  remove comment for nonexistent structure member
  s390: remove misleading comment

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qobject/qdict.c')
-rw-r--r--qobject/qdict.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/qobject/qdict.c b/qobject/qdict.c
index a1285361c4..60f158c3b7 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;
         }