]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix _getcmdline arg-duplicating bug with /etc/cmdline*
authorWill Woods <wwoods@redhat.com>
Tue, 1 May 2012 18:08:33 +0000 (14:08 -0400)
committerHarald Hoyer <harald@redhat.com>
Wed, 2 May 2012 12:41:37 +0000 (14:41 +0200)
If you unset CMDLINE to make _getcmdline re-read /etc/cmdline and
/etc/cmdline.d/*, CMDLINE_ETC and CMDLINE_ETC_D would keep their
contents.

This is a serious problem if you have (e.g.) "ip=eth0:dhcp" in
/etc/cmdline.d/net.conf, because getargs ip= will return
"ip=eth0:dhcp ip=eth0:dhcp" and then parse-ip-opts.sh will die() because
you have two configurations for eth0.

modules.d/99base/dracut-lib.sh

index a6b8d1acd4a407458ca85e4c78366a09e0e273d3..ddb695497b018fb36341b65b5053f00dd8aa8674 100755 (executable)
@@ -48,6 +48,7 @@ _getcmdline() {
     local _i
     unset _line
     if [ -z "$CMDLINE" ]; then
+        unset CMDLINE_ETC CMDLINE_ETC_D
         if [ -e /etc/cmdline ]; then
             while read -r _line; do
                 CMDLINE_ETC="$CMDLINE_ETC $_line";