From 7d0da6ca974a9d4d11b0553c2e6e6896c9262161 Mon Sep 17 00:00:00 2001 From: yabause Date: Mon, 29 Dec 2008 12:50:55 +0000 Subject: [PATCH] Fixed the sprintf problem. See http://permalink.gmane.org/gmane.linux.debian.devel.general/135067 for details. Thanks to debian games team for reporting :) --- desmume/src/Disassembler.cpp | 6 +++--- desmume/src/NDSSystem.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/desmume/src/Disassembler.cpp b/desmume/src/Disassembler.cpp index ceba6b095..90da60a00 100644 --- a/desmume/src/Disassembler.cpp +++ b/desmume/src/Disassembler.cpp @@ -247,7 +247,7 @@ const char MSR_FIELD[16][5] = { {\ if((!BIT_N(i, j+1))||(j==nb-1))\ {\ - sprintf(lreg, "%s%s,", lreg, Registre[j]);\ + sprintf(lreg + strlen(lreg), "%s,", Registre[j]);\ prec = 0;\ }\ }\ @@ -257,11 +257,11 @@ const char MSR_FIELD[16][5] = { {\ if((BIT_N(i, j+1))&&(j!=nb-1))\ {\ - sprintf(lreg, "%s%s-", lreg, Registre[j]);\ + sprintf(lreg + strlen(lreg), "%s-", Registre[j]);\ prec = 1;\ }\ else\ - sprintf(lreg, "%s%s,", lreg, Registre[j]);\ + sprintf(lreg + strlen(lreg), "%s,", Registre[j]);\ }\ }\ }\ diff --git a/desmume/src/NDSSystem.cpp b/desmume/src/NDSSystem.cpp index 914462488..7ad03291e 100644 --- a/desmume/src/NDSSystem.cpp +++ b/desmume/src/NDSSystem.cpp @@ -984,8 +984,8 @@ u32 NDS_exec(s32 nb) des_thumb_instructions_set[(NDS_ARM9.instruction)>>6](NDS_ARM9.instruct_adr, NDS_ARM9.instruction, logbuf); else des_arm_instructions_set[INDEX(NDS_ARM9.instruction)](NDS_ARM9.instruct_adr, NDS_ARM9.instruction, logbuf); - sprintf(logbuf, "%s\t%08X\n\t R00: %08X, R01: %08X, R02: %08X, R03: %08X, R04: %08X, R05: %08X, R06: %08X, R07: %08X,\n\t R08: %08X, R09: %08X, R10: %08X, R11: %08X, R12: %08X, R13: %08X, R14: %08X, R15: %08X,\n\t CPSR: %08X , SPSR: %08X", - logbuf, NDS_ARM9.instruction, NDS_ARM9.R[0], NDS_ARM9.R[1], NDS_ARM9.R[2], NDS_ARM9.R[3], NDS_ARM9.R[4], NDS_ARM9.R[5], NDS_ARM9.R[6], NDS_ARM9.R[7], + sprintf(logbuf + strlen(logbuf), "%s\t%08X\n\t R00: %08X, R01: %08X, R02: %08X, R03: %08X, R04: %08X, R05: %08X, R06: %08X, R07: %08X,\n\t R08: %08X, R09: %08X, R10: %08X, R11: %08X, R12: %08X, R13: %08X, R14: %08X, R15: %08X,\n\t CPSR: %08X , SPSR: %08X", + NDS_ARM9.instruction, NDS_ARM9.R[0], NDS_ARM9.R[1], NDS_ARM9.R[2], NDS_ARM9.R[3], NDS_ARM9.R[4], NDS_ARM9.R[5], NDS_ARM9.R[6], NDS_ARM9.R[7], NDS_ARM9.R[8], NDS_ARM9.R[9], NDS_ARM9.R[10], NDS_ARM9.R[11], NDS_ARM9.R[12], NDS_ARM9.R[13], NDS_ARM9.R[14], NDS_ARM9.R[15], NDS_ARM9.CPSR, NDS_ARM9.SPSR); LOG(logbuf); @@ -1021,8 +1021,8 @@ u32 NDS_exec(s32 nb) des_thumb_instructions_set[(NDS_ARM7.instruction)>>6](NDS_ARM7.instruct_adr, NDS_ARM7.instruction, logbuf); else des_arm_instructions_set[INDEX(NDS_ARM7.instruction)](NDS_ARM7.instruct_adr, NDS_ARM7.instruction, logbuf); - sprintf(logbuf, "%s\n\t R00: %08X, R01: %08X, R02: %08X, R03: %08X, R04: %08X, R05: %08X, R06: %08X, R07: %08X,\n\t R08: %08X, R09: %08X, R10: %08X, R11: %08X, R12: %08X, R13: %08X, R14: %08X, R15: %08X,\n\t CPSR: %08X , SPSR: %08X", - logbuf, NDS_ARM7.R[0], NDS_ARM7.R[1], NDS_ARM7.R[2], NDS_ARM7.R[3], NDS_ARM7.R[4], NDS_ARM7.R[5], NDS_ARM7.R[6], NDS_ARM7.R[7], + sprintf(logbuf + strlen(logbuf), "%s\n\t R00: %08X, R01: %08X, R02: %08X, R03: %08X, R04: %08X, R05: %08X, R06: %08X, R07: %08X,\n\t R08: %08X, R09: %08X, R10: %08X, R11: %08X, R12: %08X, R13: %08X, R14: %08X, R15: %08X,\n\t CPSR: %08X , SPSR: %08X", + NDS_ARM7.R[0], NDS_ARM7.R[1], NDS_ARM7.R[2], NDS_ARM7.R[3], NDS_ARM7.R[4], NDS_ARM7.R[5], NDS_ARM7.R[6], NDS_ARM7.R[7], NDS_ARM7.R[8], NDS_ARM7.R[9], NDS_ARM7.R[10], NDS_ARM7.R[11], NDS_ARM7.R[12], NDS_ARM7.R[13], NDS_ARM7.R[14], NDS_ARM7.R[15], NDS_ARM7.CPSR, NDS_ARM7.SPSR); LOG(logbuf);