All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v3 06/27] hw/mips/malta: Add re-usable rng_seed_hex_new() method
Date: Fri, 12 Apr 2024 00:33:25 -0700	[thread overview]
Message-ID: <20240412073346.458116-7-richard.henderson@linaro.org> (raw)
In-Reply-To: <20240412073346.458116-1-richard.henderson@linaro.org>

From: Philippe Mathieu-Daudé <philmd@linaro.org>

sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1.

Extract common code from reinitialize_rng_seed and load_kernel
to rng_seed_hex_new.  Using qemu_hexdump_line both fixes the
deprecation warning and simplifies the code base.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
[rth: Use qemu_hexdump_line.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 hw/mips/malta.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/hw/mips/malta.c b/hw/mips/malta.c
index af74008c82..664a2ae0a9 100644
--- a/hw/mips/malta.c
+++ b/hw/mips/malta.c
@@ -26,6 +26,7 @@
 #include "qemu/units.h"
 #include "qemu/bitops.h"
 #include "qemu/datadir.h"
+#include "qemu/cutils.h"
 #include "qemu/guest-random.h"
 #include "hw/clock.h"
 #include "hw/southbridge/piix.h"
@@ -850,15 +851,18 @@ static void G_GNUC_PRINTF(3, 4) prom_set(uint32_t *prom_buf, int index,
     va_end(ap);
 }
 
-static void reinitialize_rng_seed(void *opaque)
+static GString *rng_seed_hex_new(void)
 {
-    char *rng_seed_hex = opaque;
     uint8_t rng_seed[32];
 
     qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
-    for (size_t i = 0; i < sizeof(rng_seed); ++i) {
-        sprintf(rng_seed_hex + i * 2, "%02x", rng_seed[i]);
-    }
+    return qemu_hexdump_line(NULL, rng_seed, sizeof(rng_seed), 0, 0);
+}
+
+static void reinitialize_rng_seed(void *opaque)
+{
+    g_autoptr(GString) hex = rng_seed_hex_new();
+    memcpy(opaque, hex->str, hex->len);
 }
 
 /* Kernel */
@@ -870,8 +874,6 @@ static uint64_t load_kernel(void)
     uint32_t *prom_buf;
     long prom_size;
     int prom_index = 0;
-    uint8_t rng_seed[32];
-    char rng_seed_hex[sizeof(rng_seed) * 2 + 1];
     size_t rng_seed_prom_offset;
 
     kernel_size = load_elf(loaderparams.kernel_filename, NULL,
@@ -946,14 +948,13 @@ static uint64_t load_kernel(void)
     prom_set(prom_buf, prom_index++, "modetty0");
     prom_set(prom_buf, prom_index++, "38400n8r");
 
-    qemu_guest_getrandom_nofail(rng_seed, sizeof(rng_seed));
-    for (size_t i = 0; i < sizeof(rng_seed); ++i) {
-        sprintf(rng_seed_hex + i * 2, "%02x", rng_seed[i]);
-    }
     prom_set(prom_buf, prom_index++, "rngseed");
     rng_seed_prom_offset = prom_index * ENVP_ENTRY_SIZE +
                            sizeof(uint32_t) * ENVP_NB_ENTRIES;
-    prom_set(prom_buf, prom_index++, "%s", rng_seed_hex);
+    {
+        g_autoptr(GString) hex = rng_seed_hex_new();
+        prom_set(prom_buf, prom_index++, "%s", hex->str);
+    }
 
     prom_set(prom_buf, prom_index++, NULL);
 
-- 
2.34.1



  parent reply	other threads:[~2024-04-12  7:37 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-12  7:33 [PATCH v3 00/27] misc: Replace sprintf Richard Henderson
2024-04-12  7:33 ` [PATCH v3 01/27] util/hexdump: Remove b parameter from qemu_hexdump_line Richard Henderson
2024-04-12 10:00   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` [PATCH v3 02/27] util/hexdump: Remove ascii " Richard Henderson
2024-04-12 10:03   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` [PATCH v3 03/27] util/hexdump: Use a GString for qemu_hexdump_line Richard Henderson
2024-04-12 17:41   ` Philippe Mathieu-Daudé
2024-04-12 18:59     ` Richard Henderson
2024-04-13  9:45       ` Philippe Mathieu-Daudé
2024-04-13 12:02         ` Stefan Hajnoczi
2024-04-12  7:33 ` [PATCH v3 04/27] util/hexdump: Add unit_len and block_len to qemu_hexdump_line Richard Henderson
2024-04-12 17:42   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` [PATCH v3 05/27] util/hexdump: Inline g_string_append_printf "%02x" Richard Henderson
2024-04-12 17:43   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` Richard Henderson [this message]
2024-04-12  7:33 ` [PATCH v3 07/27] system/qtest: Replace sprintf by qemu_hexdump_line Richard Henderson
2024-04-12 17:45   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` [PATCH v3 08/27] hw/scsi/scsi-disk: Use qemu_hexdump_line to avoid sprintf Richard Henderson
2024-04-12 17:45   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` [PATCH v3 09/27] hw/ide/atapi: " Richard Henderson
2024-04-12  7:33 ` [PATCH v3 10/27] hw/dma/pl330: " Richard Henderson
2024-04-12  7:33 ` [PATCH v3 11/27] backends/tpm: " Richard Henderson
2024-04-12 17:47   ` Philippe Mathieu-Daudé
2024-04-12  7:33 ` [PATCH v3 12/27] disas/m68k: Replace sprintf() by snprintf() Richard Henderson
2024-04-12  7:33 ` [PATCH v3 13/27] disas/microblaze: " Richard Henderson
2024-04-12  7:33 ` [PATCH v3 14/27] disas/microblaze: Split out print_immval_addr Richard Henderson
2024-04-12  7:33 ` [PATCH v3 15/27] target/microblaze: Re-indent print_insn_microblaze Richard Henderson
2024-04-12  7:33 ` [PATCH v3 16/27] disas/microblaze: Merge op->name output into each fprintf Richard Henderson
2024-04-12  7:33 ` [PATCH v3 17/27] disas/microblaze: Print registers directly with PRIreg Richard Henderson
2024-04-12  7:33 ` [PATCH v3 18/27] disas/microblaze: Print immediates directly with PRIimm Richard Henderson
2024-04-12  7:33 ` [PATCH v3 19/27] disas/microblaze: Print registers directly with PRIrfsl Richard Henderson
2024-04-12  7:33 ` [PATCH v3 20/27] disas/microblaze: Split get_field_special Richard Henderson
2024-04-12  7:33 ` [PATCH v3 21/27] disas/riscv: Use GString in format_inst Richard Henderson
2024-04-12  7:33 ` [PATCH v3 22/27] linux-user/flatload: Replace sprintf() by snprintf() Richard Henderson
2024-04-12  9:48   ` Peter Maydell
2024-04-12  7:33 ` [PATCH v3 23/27] hw/misc/imx: " Richard Henderson
2024-04-12  7:33 ` [PATCH v3 24/27] hw/net/rocker: " Richard Henderson
2024-04-12 10:58   ` Philippe Mathieu-Daudé
2024-04-12 14:51     ` Richard Henderson
2024-04-12  7:33 ` [PATCH v3 25/27] hw/riscv/virt: Replace sprintf by g_strdup_printf Richard Henderson
2024-04-12  7:33 ` [PATCH v3 26/27] target/arm: Replace sprintf() by snprintf() Richard Henderson
2024-04-12  7:33 ` [PATCH v3 27/27] target/i386/kvm: Improve KVM_EXIT_NOTIFY warnings Richard Henderson
2024-04-12 10:59   ` Philippe Mathieu-Daudé
2024-04-16 15:32   ` Peter Maydell
2024-04-16 15:32   ` Zhao Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240412073346.458116-7-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.