Re: [PATCH] network/parse-ip-opts.sh: avoid die with multiple "ip=" dhcp cases

Xunlei Pang
2016-02-05T02:07:32Z

Cc more.

https://bugzilla.redhat.com/show_bug.cgi?id=1304069

One worry that I have about the patch is the multiple "ip=???:<interface>:dhcp:???"
with a dhcp device specifed, not too sure about the bootdev in this case.

On 2016/02/04 at 16:35, Xunlei Pang wrote:
> When multiple "ip=" dhcp related commands are specified, dracut
> will die. Two "ip=dhcp" is a simple example.
>
> For kdump cases, when the kernel command line contains "ip=dhcp"
> which is inherited by kdump environment, the network dumping also
> hits this.
>
> To fix it, we can treat multiple dhcp related commands just as one.
>
> Signed-off-by: Xunlei Pang <xlpang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> ---
> modules.d/40network/parse-ip-opts.sh | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/40network/parse-ip-opts.sh
> index 5779ef8..521f48b 100755
> --- a/modules.d/40network/parse-ip-opts.sh
> +++ b/modules.d/40network/parse-ip-opts.sh
> @@ -22,16 +22,23 @@ fi
> # Count ip= lines to decide whether we need bootdev= or not
> if [ -z "$NEEDBOOTDEV" ] ; then
> count=0
> + has_dhcp=0
> for p in $(getargs ip=); do
> - case "$p" in
> + ip_to_var $p
> + case "$autoconf" in
> ibft)
> continue;;
> + dhcp|dhcp6|on|any)
> + # Regard multiple dhcp cases as one to avoid die
> + has_dhcp=1
> + continue;;

Should we have an extra judgement using $dev here, if NULL then continue?

Regards,
Xunlei

> esac
> count=$(( $count + 1 ))
> done
> + count=$(( $count + $has_dhcp ))
> [ $count -gt 1 ] && NEEDBOOTDEV=1
> fi
> -unset count
> +unset count has_dhcp
>
> # If needed, check if bootdev= contains anything usable
> BOOTDEV=$(getarg bootdev=)