~ chicken-core (master) 4efbea2fca5cf1635a3631ba3c7be929798da710
commit 4efbea2fca5cf1635a3631ba3c7be929798da710
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Sep 25 18:31:39 2026 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Fri Sep 25 18:31:39 2026 +0200
fix unsafe pointer-inc
diff --git a/chicken.h b/chicken.h
index 3df616dd..5e8d4d0c 100644
--- a/chicken.h
+++ b/chicken.h
@@ -1356,7 +1356,7 @@ typedef void (C_ccall *C_proc)(C_word, C_word *) C_noret;
#define C_a_i_fix_to_flo(p, n, f) C_flonum(p, C_unfix(f))
#define C_cast_to_flonum(n) ((double)(n))
#define C_a_i_mpointer(ptr, n, x) C_mpointer(ptr, (x))
-#define C_a_u_i_pointer_inc(ptr, n, p, i) C_mpointer(ptr, (C_char *)(p) + C_unfix(i))
+#define C_a_u_i_pointer_inc(ptr, n, p, i) C_mpointer(ptr, (C_char *)C_c_pointer_nn(p) + C_unfix(i))
#define C_pointer_eqp(x, y) C_mk_bool(C_c_pointer_nn(x) == C_c_pointer_nn(y))
#define C_a_int_to_num(ptr, n, i) C_int_to_num(ptr, i)
#define C_a_unsigned_int_to_num(ptr, n, i) C_unsigned_int_to_num(ptr, i)
Trap