[rhel7-branch 1/1] Always quote values in ifcfg- files (#1279131)

bcl installerbot-noreply at redhat.com
Tue Nov 10 00:59:17 UTC 2015


From: "Brian C. Lane" <bcl at redhat.com>

parse-kickstart doesn't use SimpleConfig and wasn't quoting everything.
These files are shell executables so everything needs to be quoted to
prevent accidentally trying to run unexpected binaries.

Resolves: rhbz#1279131
---
 dracut/parse-kickstart | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/dracut/parse-kickstart b/dracut/parse-kickstart
index f652f9e..c6f5713 100755
--- a/dracut/parse-kickstart
+++ b/dracut/parse-kickstart
@@ -458,7 +458,7 @@ def ksnet_to_ifcfg(net, filename=None):
             sep = ";"
         else:
             sep = ","
-        ifcfg['BONDING_OPTS'] = '"' + " ".join(net.bondopts.split(sep)) + '"'
+        ifcfg['BONDING_OPTS'] = " ".join(net.bondopts.split(sep))
 
         for i, slave in enumerate(net.bondslaves.split(","), 1):
             slave_ifcfg = {
@@ -479,7 +479,7 @@ def ksnet_to_ifcfg(net, filename=None):
         ifcfg.pop('HWADDR', None)
         ifcfg['TYPE'] = "Team"
         ifcfg['NAME'] = "Team connection %s" % dev
-        ifcfg['TEAM_CONFIG'] = "'" + net.teamconfig + "'"
+        ifcfg['TEAM_CONFIG'] = net.teamconfig
 
         for i, (slave, cfg) in enumerate(net.teamslaves):
             slave_ifcfg = {
@@ -492,7 +492,7 @@ def ksnet_to_ifcfg(net, filename=None):
 #                            'HWADDR' : readsysfile("/sys/class/net/%s/address" % slave),
                           }
             if cfg:
-                slave_ifcfg['TEAM_PORT_CONFIG'] = "'" + cfg + "'"
+                slave_ifcfg['TEAM_PORT_CONFIG'] = cfg
 
             slave_filename = "/tmp/ifcfg/ifcfg-%s" % "_".join(slave_ifcfg['NAME'].split(" "))
             log.info("writing ifcfg %s for slave %s of team %s" % (slave_filename, slave, dev))
@@ -520,7 +520,7 @@ def ksnet_to_ifcfg(net, filename=None):
             ifcfg['DELAY'] = delay
         if options:
             keyvalues = ["%s=%s" % (key, options[key]) for key in options]
-            ifcfg['BRIDGING_OPTS'] = '"' + " ".join(keyvalues) + '"'
+            ifcfg['BRIDGING_OPTS'] = " ".join(keyvalues)
 
         for i, slave in enumerate(net.bridgeslaves.split(","), 1):
             slave_ifcfg = {
@@ -555,7 +555,7 @@ def write_ifcfg(filename, ifcfg):
         with open(filename, "w") as f:
             f.write('# Generated by parse-kickstart\n')
             for k,v in ifcfg.items():
-                f.write("%s=%s\n" % (k,v))
+                f.write('%s="%s"\n' % (k,v.replace('"', '\\"')))
     except IOError as e:
         log.error("can't write %s: %s" % (filename, e))
         return False


-- 
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/3ad9418b0287d455909e1bdbd487c3e0d3f237c5


More information about the anaconda-patches mailing list