Origin: r795, r796
Description: move netfilter capabilities checking into initcaps(), and call
 initcaps() only when we need it.
Bug-Ubuntu: https://launchpad.net/bugs/1044361

Upstream-Status: Inappropriate [ not author ]

Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>

Index: ufw-0.33/src/backend_iptables.py
===================================================================
--- ufw-0.33.orig/src/backend_iptables.py	2012-09-23 09:58:34.000000000 -0500
+++ ufw-0.33/src/backend_iptables.py	2012-09-23 09:58:36.000000000 -0500
@@ -160,6 +160,9 @@
             out += "> " + _("Checking raw ip6tables\n")
             return out
 
+        # Initialize the capabilities database
+        self.initcaps()
+
         args = ['-n', '-v', '-x', '-L']
         items = []
         items6 = []
@@ -470,6 +473,9 @@
         if self.dryrun:
             return False
 
+        # Initialize the capabilities database
+        self.initcaps()
+
         prefix = "ufw"
         exe = self.iptables
         if v6:
@@ -684,6 +690,9 @@
         except Exception:
             raise
 
+        # Initialize the capabilities database
+        self.initcaps()
+
         chain_prefix = "ufw"
         rules = self.rules
         if v6:
@@ -830,6 +839,10 @@
         * updating user rules file
         * reloading the user rules file if rule is modified
         '''
+
+        # Initialize the capabilities database
+        self.initcaps()
+
         rstr = ""
 
         if rule.v6:
@@ -1073,6 +1086,9 @@
         if self.dryrun:
             return
 
+        # Initialize the capabilities database
+        self.initcaps()
+
         rules_t = []
         try:
             rules_t = self._get_logging_rules(level)
Index: ufw-0.33/src/backend.py
===================================================================
--- ufw-0.33.orig/src/backend.py	2012-09-23 09:58:34.000000000 -0500
+++ ufw-0.33/src/backend.py	2012-09-23 09:59:03.000000000 -0500
@@ -21,7 +21,7 @@
 import stat
 import sys
 import ufw.util
-from ufw.util import warn, debug
+from ufw.util import error, warn, debug
 from ufw.common import UFWError, config_dir, iptables_dir, UFWRule
 import ufw.applications
 
@@ -68,6 +68,17 @@
             err_msg = _("Couldn't determine iptables version")
             raise UFWError(err_msg)
 
+        # Initialize via initcaps only when we need it (LP: #1044361)
+        self.caps = None
+
+    def initcaps(self):
+        '''Initialize the capabilities database. This needs to be called
+           before accessing the database.'''
+
+        # Only initialize if not initialized already
+        if self.caps != None:
+            return
+
         self.caps = {}
         self.caps['limit'] = {}
 
@@ -78,14 +89,20 @@
         # Try to get capabilities from the running system if root
         if self.do_checks and os.getuid() == 0 and not self.dryrun:
             # v4
-            nf_caps = ufw.util.get_netfilter_capabilities(self.iptables)
+            try:
+                nf_caps = ufw.util.get_netfilter_capabilities(self.iptables)
+            except OSError as e:
+                error("initcaps\n%s" % e)
             if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
                 self.caps['limit']['4'] = True
             else:
                 self.caps['limit']['4'] = False
 
             # v6
-            nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
+            try:
+                nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
+            except OSError as e:
+                error("initcaps\n%s" % e)
             if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
                 self.caps['limit']['6'] = True
             else:
