aboutsummaryrefslogtreecommitdiff
path: root/src/svf/svf.c
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2013-09-10 15:14:56 +0400
committerSpencer Oliver <spen@spen-soft.co.uk>2013-09-13 19:34:46 +0000
commit8b3f0f3f69a393151252d7f2211c9a15ae6cb456 (patch)
tree7d0bdfb51f1ab7133b154584cbb47a5da23d21e3 /src/svf/svf.c
parent3377c164204f8cdaeabdbba13513091b5e04fce0 (diff)
downloadriscv-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.c5
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;