From ba4fded478e69e8c969d102e55a7bfefbd89e2eb Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Mon, 23 Nov 2015 18:32:30 +0000 Subject: [PATCH] (IDS) fix possible race in reloading ruleset --- src/opnsense/scripts/suricata/lib/rulecache.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/opnsense/scripts/suricata/lib/rulecache.py b/src/opnsense/scripts/suricata/lib/rulecache.py index 521898354..7dc6a65e4 100644 --- a/src/opnsense/scripts/suricata/lib/rulecache.py +++ b/src/opnsense/scripts/suricata/lib/rulecache.py @@ -138,7 +138,13 @@ class RuleCache(object): db = sqlite3.connect(self.cachefile) cur = db.cursor() - cur.execute('CREATE TABLE stats (timestamp number, files number)') + + # if another process created the file, exit. + cur.execute("select count(*) from sqlite_master where name = 'stats'") + if cur.fetchall()[0][0] > 0: + return None + + cur.execute("CREATE TABLE stats (timestamp number, files number)") cur.execute("""CREATE TABLE rules (sid number, msg TEXT, classtype TEXT, rev INTEGER, gid INTEGER, reference TEXT, enabled BOOLEAN, action text, source TEXT)""")