target: fix unsigned computation in 'monitor profile'
commita51ac964c6160646f2c28db854aa8faf096eb314
authorAntonio Borneo <borneo.antonio@gmail.com>
Sun, 11 Dec 2022 09:11:58 +0000 (11 10:11 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 17 Dec 2022 09:32:09 +0000 (17 09:32 +0000)
treef969094cf628de812b117f74dbd3fc1670471987
parenta6b02219529d1d48d130e4bed9c8d55395662ff6
target: fix unsigned computation in 'monitor profile'

The implementation of command 'monitor profile' has few
issues:
- the address_space is a signed int, so cannot wrap-around on
  space over INT_MAX;
- max address is incremented without check for overflow;
- assert() used on errors instead of returning error codes;
- only handles 32 bits PC;
- output file created and left empty on error.

This patch fixes the first two issues, as a wider fix would be too
invasive and should be postponed in a following series.

Change-Id: Id8ead3f6db0fd5730682a0d1638f11836d06a632
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Fixes: https://sourceforge.net/p/openocd/tickets/370/
Reviewed-on: https://review.openocd.org/c/openocd/+/7394
Tested-by: jenkins
src/target/target.c