[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 8/8] gdbstub: Fix double close() of the follow-fork-mode socket
From: |
Alex Bennée |
Subject: |
[PULL 8/8] gdbstub: Fix double close() of the follow-fork-mode socket |
Date: |
Tue, 12 Mar 2024 11:25:32 +0000 |
From: Ilya Leoshkevich <iii@linux.ibm.com>
When the terminal GDB_FORK_ENABLED state is reached, the coordination
socket is not needed anymore and is therefore closed. However, if there
is a communication error between QEMU gdbstub and GDB, the generic
error handling code attempts to close it again.
Fix by closing it later - before returning - instead.
Fixes: Coverity CID 1539966
Fixes: d547e711a8a5 ("gdbstub: Implement follow-fork-mode child")
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240312001813.13720-1-iii@linux.ibm.com>
diff --git a/gdbstub/user.c b/gdbstub/user.c
index 2005f3312b..edeb72efeb 100644
--- a/gdbstub/user.c
+++ b/gdbstub/user.c
@@ -517,6 +517,7 @@ void gdbserver_fork_end(CPUState *cpu, pid_t pid)
switch (gdbserver_user_state.fork_state) {
case GDB_FORK_ENABLED:
if (gdbserver_user_state.running_state) {
+ close(fd);
return;
}
QEMU_FALLTHROUGH;
@@ -542,7 +543,6 @@ void gdbserver_fork_end(CPUState *cpu, pid_t pid)
gdbserver_user_state.fork_state = GDB_FORK_ACTIVE;
break;
case GDB_FORK_ENABLE:
- close(fd);
gdbserver_user_state.fork_state = GDB_FORK_ENABLED;
break;
case GDB_FORK_DISABLE:
@@ -557,7 +557,6 @@ void gdbserver_fork_end(CPUState *cpu, pid_t pid)
if (write(fd, &b, 1) != 1) {
goto fail;
}
- close(fd);
gdbserver_user_state.fork_state = GDB_FORK_ENABLED;
break;
case GDB_FORK_DISABLING:
--
2.39.2
- [PULL for 9.0 0/8] final maintainer updates (testing, gdbstub), Alex Bennée, 2024/03/12
- [PULL 3/8] gdbstub: Rename back gdb_handlesig, Alex Bennée, 2024/03/12
- [PULL 1/8] gitlab: aggressively avoid extra GIT data, Alex Bennée, 2024/03/12
- [PULL 2/8] tests/vm: ensure we build everything by default, Alex Bennée, 2024/03/12
- [PULL 7/8] tests/tcg: Add multiarch test for Xfer:siginfo:read stub, Alex Bennée, 2024/03/12
- [PULL 5/8] gdbstub: Save target's siginfo, Alex Bennée, 2024/03/12
- [PULL 6/8] gdbstub: Add Xfer:siginfo:read stub, Alex Bennée, 2024/03/12
- [PULL 8/8] gdbstub: Fix double close() of the follow-fork-mode socket,
Alex Bennée <=
- [PULL 4/8] linux-user: Move tswap_siginfo out of target code, Alex Bennée, 2024/03/12
- Re: [PULL for 9.0 0/8] final maintainer updates (testing, gdbstub), Peter Maydell, 2024/03/12