From 41436452357983a35d2280d04be3fad269928a72 Mon Sep 17 00:00:00 2001
From: Aadhya R <aadhyar.cs24@rvce.edu.in>
Date: Sun, 15 Mar 2026 12:27:39 +0000
Subject: [PATCH v2] disas/sparc: Fix integer overflow and convert to g_malloc
To: mark.cave-ayland@ilande.co.uk
Cc: qemu-devel@nongnu.org,
qemu-trivial@nongnu.org
Replace standard C allocators with GLib functions to safely handle
out-of-memory aborts. Also change '1 << i' to '1ul << i' to prevent
undefined behavior when shifting into the sign bit. Resolves SVACE
warning and GitLab issue #1798.
Signed-off-by: Aadhya R <aadhyar.cs24@rvce.edu.in>
---
disas/sparc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/disas/sparc.c b/disas/sparc.c
index 40c1164554..702409a118 100644
--- a/disas/sparc.c
+++ b/disas/sparc.c
@@ -2623,7 +2623,7 @@ build_hash_table (const sparc_opcode **opcode_table,
memset (hash_table, 0, HASH_SIZE * sizeof (hash_table[0]));
memset (hash_count, 0, HASH_SIZE * sizeof (hash_count[0]));
free(hash_buf);
- hash_buf = malloc (sizeof (* hash_buf) * num_opcodes);
+ hash_buf = g_malloc(sizeof(*hash_buf) * num_opcodes);
for (i = num_opcodes - 1; i >= 0; --i)
{
int hash = HASH_INSN (opcode_table[i]->match);
@@ -2685,7 +2685,7 @@ print_insn_sparc (bfd_vma memaddr, disassemble_info *info)
if (!opcodes_initialized)
sorted_opcodes =
- malloc (sparc_num_opcodes * sizeof (sparc_opcode *));
+ g_malloc(sparc_num_opcodes * sizeof(sparc_opcode *));
/* Reset the sorted table so we can resort it. */
for (i = 0; i < sparc_num_opcodes; ++i)
sorted_opcodes[i] = &sparc_opcodes[i];
--
2.43.0