diff options
author | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2014-09-02 21:51:51 +0200 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2014-09-15 08:22:56 +0000 |
commit | 45f01e0a1269ceb23bfd3a34d2d635bf07463bd0 (patch) | |
tree | 526cdea1b5b3abfd7dd081af592d9c7016fcff12 /src/target/cortex_m.c | |
parent | 910972fcec5f6a575bfe2e1255420b873f5568c8 (diff) |
cortex_m: Check return value from cortex_m_dcc_read.
Caught by clang.
Change-Id: I26d2b845aca431612862ef432b217ca397d9b893
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/2279
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/target/cortex_m.c')
-rw-r--r-- | src/target/cortex_m.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index aafc097a..72dbe9ee 100644 --- a/src/target/cortex_m.c +++ b/src/target/cortex_m.c @@ -1910,7 +1910,9 @@ static int cortex_m_target_request_data(struct target *target, uint32_t i; for (i = 0; i < (size * 4); i++) { - cortex_m_dcc_read(target, &data, &ctrl); + int retval = cortex_m_dcc_read(target, &data, &ctrl); + if (retval != ERROR_OK) + return retval; buffer[i] = data; } @@ -1929,8 +1931,11 @@ static int cortex_m_handle_target_request(void *priv) if (target->state == TARGET_RUNNING) { uint8_t data; uint8_t ctrl; + int retval; - cortex_m_dcc_read(target, &data, &ctrl); + retval = cortex_m_dcc_read(target, &data, &ctrl); + if (retval != ERROR_OK) + return retval; /* check if we have data */ if (ctrl & (1 << 0)) { @@ -1938,12 +1943,12 @@ static int cortex_m_handle_target_request(void *priv) /* we assume target is quick enough */ request = data; - cortex_m_dcc_read(target, &data, &ctrl); - request |= (data << 8); - cortex_m_dcc_read(target, &data, &ctrl); - request |= (data << 16); - cortex_m_dcc_read(target, &data, &ctrl); - request |= (data << 24); + for (int i = 1; i <= 3; i++) { + retval = cortex_m_dcc_read(target, &data, &ctrl); + if (retval != ERROR_OK) + return retval; + request |= ((uint32_t)data << (i * 8)); + } target_request(target, request); } } |