X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Frl78-decode.opc;h=b25e4410a8625149f02f4193aec7734983313341;hb=8e43602e34ba404d82f7c74f6629f01e40c740e0;hp=6212f08147c2b74c15765c3368ffa47dcc5527b9;hpb=2571583aed598dd3f9651b53434e5f177a0e3cf7;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/rl78-decode.opc b/opcodes/rl78-decode.opc index 6212f08147..b25e4410a8 100644 --- a/opcodes/rl78-decode.opc +++ b/opcodes/rl78-decode.opc @@ -50,7 +50,9 @@ typedef struct #define W() rl78->size = RL78_Word #define AU ATTRIBUTE_UNUSED -#define GETBYTE() (ld->op [ld->rl78->n_bytes++] = ld->getbyte (ld->ptr)) + +#define OP_BUF_LEN 20 +#define GETBYTE() (ld->rl78->n_bytes < (OP_BUF_LEN - 1) ? ld->op [ld->rl78->n_bytes++] = ld->getbyte (ld->ptr): 0) #define B ((unsigned long) GETBYTE()) #define SYNTAX(x) rl78->syntax = x @@ -168,7 +170,7 @@ rl78_decode_opcode (unsigned long pc AU, RL78_Dis_Isa isa) { LocalData lds, * ld = &lds; - unsigned char op_buf[20] = {0}; + unsigned char op_buf[OP_BUF_LEN] = {0}; unsigned char *op = op_buf; int op0, op1;