diff options
author | Paul Fertser <fercerpav@gmail.com> | 2013-09-10 15:14:56 +0400 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2013-09-13 19:34:46 +0000 |
commit | 8b3f0f3f69a393151252d7f2211c9a15ae6cb456 (patch) | |
tree | 7d0bdfb51f1ab7133b154584cbb47a5da23d21e3 /src/svf/svf.c | |
parent | 3377c164204f8cdaeabdbba13513091b5e04fce0 (diff) | |
download | riscv-openocd-8b3f0f3f69a393151252d7f2211c9a15ae6cb456.zip riscv-openocd-8b3f0f3f69a393151252d7f2211c9a15ae6cb456.tar.gz riscv-openocd-8b3f0f3f69a393151252d7f2211c9a15ae6cb456.tar.bz2 |
svf: off-by-one error; do not access after the allocated memory
Keep the promise and ensure there're at least 3 bytes available after
the current position.
This eliminates the errors reported by Valgrind.
Change-Id: I1d0640e904c750eed808b2b4caf419b4d7619845
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1615
Tested-by: jenkins
Reviewed-by: Peter Stuge <peter@stuge.se>
Diffstat (limited to 'src/svf/svf.c')
-rw-r--r-- | src/svf/svf.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/svf/svf.c b/src/svf/svf.c index 69f75ac..3e7bfbf 100644 --- a/src/svf/svf.c +++ b/src/svf/svf.c @@ -642,8 +642,9 @@ static int svf_read_command_from_file(FILE *fd) * - added space. * - terminating NUL ('\0') */ - if ((cmd_pos + 2) >= svf_command_buffer_size) { - svf_command_buffer = realloc(svf_command_buffer, (cmd_pos + 2)); + if (cmd_pos + 3 > svf_command_buffer_size) { + svf_command_buffer = realloc(svf_command_buffer, cmd_pos + 3); + svf_command_buffer_size = cmd_pos + 3; if (svf_command_buffer == NULL) { LOG_ERROR("not enough memory"); return ERROR_FAIL; |