diff --git a/dwmblocks.c b/dwmblocks.c index 876099f..dc3d61b 100644 --- a/dwmblocks.c +++ b/dwmblocks.c @@ -178,6 +178,8 @@ updateblock(Block *block, int sigval) switch (fork()) { case -1: perror("updateblock - fork"); + close(fd[0]); + close(fd[1]); cleanup(); exit(1); case 0: @@ -185,6 +187,7 @@ updateblock(Block *block, int sigval) if (fd[1] != STDOUT_FILENO) { if (dup2(fd[1], STDOUT_FILENO) != STDOUT_FILENO) { perror("updateblock - child - dup2"); + close(fd[1]); exit(1); } close(fd[1]); @@ -213,6 +216,7 @@ updateblock(Block *block, int sigval) while (rd > 0 && (trd += rd) < CMDOUTLENGTH); if (rd == -1) { perror("updateblock - read"); + close(fd[0]); cleanup(); exit(1); } @@ -281,14 +285,17 @@ writepid() exit(2); } perror("writepid - fcntl"); + close(fd); exit(1); } if (ftruncate(fd, 0) == -1) { perror("writepid - ftruncate"); + close(fd); exit(1); } if (dprintf(fd, "%ld", (long)getpid()) < 0) { perror("writepid - dprintf"); + close(fd); exit(1); } }