qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 10/13] hw/scsi/scsi-disk: Use qemu_hexdump_line() to avoid


From: Richard Henderson
Subject: Re: [PATCH v2 10/13] hw/scsi/scsi-disk: Use qemu_hexdump_line() to avoid sprintf()
Date: Thu, 11 Apr 2024 13:53:59 -0700
User-agent: Mozilla Thunderbird

On 4/11/24 03:15, Philippe Mathieu-Daudé wrote:
sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1,
resulting in painful developper experience.

Use qemu_hexdump_line() to avoid sprintf() calls, silencing:

   [105/169] Compiling C object libcommon.fa.p/hw_scsi_scsi-disk.c.o
   hw/scsi/scsi-disk.c:2659:14: warning: 'sprintf' is deprecated:
     This function is provided for compatibility reasons only.
     Due to security concerns inherent in the design of sprintf(3),
     it is highly recommended that you use snprintf(3) instead.
     [-Wdeprecated-declarations]
         p += sprintf(p, " 0x%02x", buf[i]);
              ^

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  hw/scsi/scsi-disk.c | 8 ++------
  1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 4bd7af9d0c..4f914df5c2 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2648,16 +2648,12 @@ static const SCSIReqOps *const 
scsi_disk_reqops_dispatch[256] = {
static void scsi_disk_new_request_dump(uint32_t lun, uint32_t tag, uint8_t *buf)
  {
-    int i;
      int len = scsi_cdb_length(buf);
-    char *line_buffer, *p;
+    char *line_buffer;
assert(len > 0 && len <= 16);
-    line_buffer = g_malloc(len * 5 + 1);
- for (i = 0, p = line_buffer; i < len; i++) {
-        p += sprintf(p, " 0x%02x", buf[i]);
-    }
+    line_buffer = qemu_hexdump_line(buf, 0, len, false);

This is adding "0000: " as an unnecessary prefix, because it's added by 
qemu_hexdump_line.
I think having qemu_hexdump_line as a primitive is good, but probably the offset argument should be dropped and printed by the two callers that need it (mostly qemu_hexdump).


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]