From 7a638557049441ec055729055dcfb5fc38c5d06a Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Thu, 16 May 2024 11:03:13 +0200 Subject: [PATCH] isotest: Fix bad free Error: BAD_FREE (CWE-763): [#def58] [important] tools/isotest.c:1461:5: address: Taking offset from "strchr(filename, 44)". tools/isotest.c:1461:5: assign: Assigning: "filename" = "strchr(filename, 44) + 1". tools/isotest.c:1536:2: incorrect_free: "free" frees incorrect pointer "filename". 1534| 1535| done: 1536|-> free(filename); 1537| 1538| syslog(LOG_INFO, "Exit"); --- tools/isotest.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/isotest.c b/tools/isotest.c index 58293133a..fc1c26b23 100644 --- a/tools/isotest.c +++ b/tools/isotest.c @@ -1457,8 +1457,11 @@ int main(int argc, char *argv[]) switch (mode) { case SEND: send_mode(filename, argv[optind + i], i, repeat); - if (filename && strchr(filename, ',')) - filename = strchr(filename, ',') + 1; + if (filename && strchr(filename, ',')) { + char *tmp = filename; + filename = strdup(strchr(filename, ',') + 1); + free(tmp); + } break; case RECONNECT: -- 2.47.3