Commit bfaf9a43a5cd25f683e8a42a8288f44232b72053
1 parent
5c751e99
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
Showing
1 changed file
with
4 additions
and
6 deletions
cris-dis.c
@@ -2625,12 +2625,10 @@ print_insn_cris_generic (bfd_vma memaddr, | @@ -2625,12 +2625,10 @@ print_insn_cris_generic (bfd_vma memaddr, | ||
2625 | If we can't get any data, or we do not get enough data, we print | 2625 | If we can't get any data, or we do not get enough data, we print |
2626 | the error message. */ | 2626 | the error message. */ |
2627 | 2627 | ||
2628 | - for (nbytes = MAX_BYTES_PER_CRIS_INSN; nbytes > 0; nbytes -= 2) | ||
2629 | - { | ||
2630 | - status = (*info->read_memory_func) (memaddr, buffer, nbytes, info); | ||
2631 | - if (status == 0) | ||
2632 | - break; | ||
2633 | - } | 2628 | + nbytes = info->buffer_length; |
2629 | + if (nbytes > MAX_BYTES_PER_CRIS_INSN) | ||
2630 | + nbytes = MAX_BYTES_PER_CRIS_INSN; | ||
2631 | + status = (*info->read_memory_func) (memaddr, buffer, nbytes, info); | ||
2634 | 2632 | ||
2635 | /* If we did not get all we asked for, then clear the rest. | 2633 | /* If we did not get all we asked for, then clear the rest. |
2636 | Hopefully this makes a reproducible result in case of errors. */ | 2634 | Hopefully this makes a reproducible result in case of errors. */ |