about summary refs log tree commit diff
path: root/patches/qemu-for-aflplusplus-casts.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/qemu-for-aflplusplus-casts.patch')
-rw-r--r--patches/qemu-for-aflplusplus-casts.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/patches/qemu-for-aflplusplus-casts.patch b/patches/qemu-for-aflplusplus-casts.patch
new file mode 100644
index 0000000..fee864d
--- /dev/null
+++ b/patches/qemu-for-aflplusplus-casts.patch
@@ -0,0 +1,45 @@
+From c490d42fe3db664d03e3c75d7b23243a717d3437 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= <cnx@loang.net>
+Date: Mon, 20 Oct 2025 20:08:48 +0900
+Subject: [PATCH] Add explicit casts
+
+---
+ accel/tcg/cpu-exec.c    | 4 ++--
+ accel/tcg/tcg-runtime.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
+index 2def088a34c6c..e62318fdcb067 100644
+--- a/accel/tcg/cpu-exec.c
++++ b/accel/tcg/cpu-exec.c
+@@ -285,7 +285,7 @@ static void restore_memory_snapshot(void) {
+ 
+ static int use_ijon = 0;
+ static unsigned char *ijon_map_ptr = dummy;
+-static uint64_t *ijon_max_ptr = dummy;
++static uint64_t *ijon_max_ptr = (uint64_t *)dummy;
+ 
+ /* IJON state tracking globals */
+ #if defined(__ANDROID__) || defined(__HAIKU__) || defined(NO_TLS)
+@@ -408,7 +408,7 @@ static void parse_ijon_line(const char *line, int line_num) {
+ 
+   } else {
+ 
+-    g_var_addr[ijon_hooker_cnt] = ijon_reg_to_addr(fields[2]);
++    g_var_addr[ijon_hooker_cnt] = (target_ulong) ijon_reg_to_addr(fields[2]);
+     if (g_var_addr[ijon_hooker_cnt] == 0) {
+       IJON_PARSE_ERROR(line_num, line, "Invalid register name in field 3. Value: '%s'", fields[2]);
+     }
+diff --git a/accel/tcg/tcg-runtime.c b/accel/tcg/tcg-runtime.c
+index 04bb709c918d3..fde4d299bb9dd 100644
+--- a/accel/tcg/tcg-runtime.c
++++ b/accel/tcg/tcg-runtime.c
+@@ -40,7 +40,7 @@ uint32_t afl_hash_ip(uint64_t);
+ void HELPER(ijon_func_call)(target_ulong var_addr, target_ulong var_len, target_ulong itype, target_ulong idx)
+ {
+   uint64_t buf = 0;
+-  memcpy(&buf, var_addr, var_len);
++  memcpy(&buf, (const void *)var_addr, var_len);
+   ijon_dispatch(itype, idx, buf);
+   fprintf(stderr, "trigger ijon: addr=0x%016" PRIx64 " tag=%s value %ld\n", var_addr, ijon_to_str(itype), buf);
+ }