From 7c019852a5bcf6ab6e4c654b580ab31a28601873 Mon Sep 17 00:00:00 2001 From: D-RF-W Date: Mon, 8 Jun 2026 23:52:18 +0800 Subject: [PATCH] fix:undefined behavior in write_as sprintf format specifiers --- cpc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cpc.c b/cpc.c index 9a40e0c..1c81481 100644 --- a/cpc.c +++ b/cpc.c @@ -661,9 +661,10 @@ void write_as() { fd = open("assemble", 0x0001 | 0x0200); buffer = malloc(100); while (code_dump < code) { - sprintf(buffer, "(%lld) %8.4s", ++code_dump, insts + (*code_dump * 5)); + ++code_dump; + sprintf(buffer, "(%lld) %8.4s", (long long)code_dump, insts + (*code_dump * 5)); write(fd, buffer, strlen(buffer)); - if (*code_dump < RET) sprintf(buffer, " %lld\n", *++code_dump); + if (*code_dump < RET) sprintf(buffer, " %lld\n", (long long)*++code_dump); else {buffer[0] = '\n'; buffer[1] = '\0';} write(fd, buffer, strlen(buffer)); }