firewall3: fix locking issue
authorFlorian Eckert <fe@dev.tdt.de>
Fri, 19 Nov 2021 08:51:02 +0000 (09:51 +0100)
committerRui Salvaterra <rsalvaterra@gmail.com>
Sat, 8 Jan 2022 11:33:49 +0000 (11:33 +0000)
By calling the command 'fw3 reload' several times at the same time, I
noticed that the locking was not working properly. It happened from time
to time that some firewall rules were present twice in the system!

By removing the 'unlink' systemcall, this error no longer occurred on my
systems.

Since fw3 does not run as a service, it makes no sense to delete this
lock file every time a filehandler is no longer open on this lock file,
because fw3 binary is not running.

If fw3 does run as a service then we can remove this lock file on
service stop. But this is not the case for fw3.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
utils.c

diff --git a/utils.c b/utils.c
index 17d5bf97d18f43a54cb721604ee60f9bb34590ff..92e966c20f6ac23806edde02c63d61f32f7af537 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -397,7 +397,6 @@ fw3_unlock_path(int *fd, const char *lockpath)
                warn("Cannot release exclusive lock: %s", strerror(errno));
 
        close(*fd);
-       unlink(FW3_LOCKFILE);
 
        *fd = -1;
 }