aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Paris <jimparis@meta.com>2025-02-21 12:33:45 -0500
committerAntonio Borneo <borneo.antonio@gmail.com>2025-03-01 15:12:36 +0000
commitaccbeaed99bc6014d060259d6b0b0e080c0f44b4 (patch)
treeb4c019792b5d306b7d29eabac145ee0ccad20577 /src
parentc986b4dbf2ff81753adcd0235954cfd577831672 (diff)
downloadriscv-openocd-accbeaed99bc6014d060259d6b0b0e080c0f44b4.zip
riscv-openocd-accbeaed99bc6014d060259d6b0b0e080c0f44b4.tar.gz
riscv-openocd-accbeaed99bc6014d060259d6b0b0e080c0f44b4.tar.bz2
gdb_server: fix invalid free
`gdb_service_free` calls `free(gdb_port_next)`, so this needs to be an allocated string. Otherwise we trip up detectors like Android's tagged pointers. Change-Id: Ib08ea55a38af4e15c4fbae95f10db0e3684ae1af Signed-off-by: Jim Paris <jimparis@meta.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8768 Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins
Diffstat (limited to 'src')
-rw-r--r--src/server/gdb_server.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index 1866de0..71b7c77 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -3898,7 +3898,8 @@ static int gdb_target_add_one(struct target *target)
}
}
} else if (strcmp(gdb_port_next, "pipe") == 0) {
- gdb_port_next = "disabled";
+ free(gdb_port_next);
+ gdb_port_next = strdup("disabled");
}
}
return retval;