Teach the CRIS disassembler to stay within the provided buffer.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4353 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
edgar_igl 2008-05-06 08:45:10 +00:00
parent 5c751e99c3
commit bfaf9a43a5
1 changed files with 4 additions and 6 deletions

View File

@ -2625,12 +2625,10 @@ print_insn_cris_generic (bfd_vma memaddr,
If we can't get any data, or we do not get enough data, we print If we can't get any data, or we do not get enough data, we print
the error message. */ the error message. */
for (nbytes = MAX_BYTES_PER_CRIS_INSN; nbytes > 0; nbytes -= 2) nbytes = info->buffer_length;
{ if (nbytes > MAX_BYTES_PER_CRIS_INSN)
nbytes = MAX_BYTES_PER_CRIS_INSN;
status = (*info->read_memory_func) (memaddr, buffer, nbytes, info); status = (*info->read_memory_func) (memaddr, buffer, nbytes, info);
if (status == 0)
break;
}
/* If we did not get all we asked for, then clear the rest. /* If we did not get all we asked for, then clear the rest.
Hopefully this makes a reproducible result in case of errors. */ Hopefully this makes a reproducible result in case of errors. */