From 88e5516ea914f0e9d433a50dc0b2867085250308 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 7 Nov 2011 11:44:21 +1100 Subject: [PATCH] mdmon: avoid using victim_sock when it is -1. It possible that we try to use victim_sock even when we couldn't open it. This is never actually harmful but it looks wrong and it is best to fix it. Signed-off-by: NeilBrown --- mdmon.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mdmon.c b/mdmon.c index ee68e3c..b6ae0e6 100644 --- a/mdmon.c +++ b/mdmon.c @@ -189,6 +189,9 @@ static void try_kill_monitor(pid_t pid, char *devname, int sock) kill(pid, SIGTERM); + if (sock < 0) + return; + /* Wait for monitor to exit by reading from the socket, after * clearing the non-blocking flag */ fl = fcntl(sock, F_GETFL, 0); @@ -468,6 +471,7 @@ static int mdmon(char *devname, int devnum, int must_fork, int takeover) exit(3); } close(victim_sock); + victim_sock = -1; } if (container->ss->load_container(container, mdfd, devname)) { fprintf(stderr, "mdmon: Cannot load metadata for %s\n", @@ -501,7 +505,8 @@ static int mdmon(char *devname, int devnum, int must_fork, int takeover) if (victim > 0) { try_kill_monitor(victim, container->devname, victim_sock); - close(victim_sock); + if (victim_sock >= 0) + close(victim_sock); } setsid();