Fix an infinite loop in grub-mkconfig

* util/grub.d/10_hurd.in: Make kernel list progression not fail on
kernels whose paths contain regex metacharacters.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.

Reported by: Heimo Stranner.
This commit is contained in:
Colin Watson 2014-07-08 23:54:30 +01:00
parent 4250f552a6
commit 0901e7855f
5 changed files with 15 additions and 5 deletions

View file

@ -1,3 +1,13 @@
2014-07-08 Colin Watson <cjwatson@ubuntu.com>
* util/grub.d/10_hurd.in: Make kernel list progression not fail on
kernels whose paths contain regex metacharacters.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
Reported by: Heimo Stranner.
2014-06-26 Colin Watson <cjwatson@ubuntu.com> 2014-06-26 Colin Watson <cjwatson@ubuntu.com>
* docs/grub-dev.texi (Finding your way around): The build system no * docs/grub-dev.texi (Finding your way around): The build system no

View file

@ -168,7 +168,7 @@ while [ "x$kernels" != "x" ] ; do
hurd_entry "$kernel" advanced hurd_entry "$kernel" advanced
hurd_entry "$kernel" recovery hurd_entry "$kernel" recovery
kernels=`echo $kernels | tr ' ' '\n' | grep -vx $kernel | tr '\n' ' '` kernels=`echo $kernels | tr ' ' '\n' | fgrep -vx "$kernel" | tr '\n' ' '`
done done
# If at least one kernel was found, then we need to # If at least one kernel was found, then we need to

View file

@ -228,7 +228,7 @@ while [ "x$list" != "x" ] ; do
kfreebsd_entry "${OS}" "${version}" recovery "-s" kfreebsd_entry "${OS}" "${version}" recovery "-s"
fi fi
list=`echo $list | tr ' ' '\n' | grep -vx $kfreebsd | tr '\n' ' '` list=`echo $list | tr ' ' '\n' | fgrep -vx "$kfreebsd" | tr '\n' ' '`
done done
# If at least one kernel was found, then we need to # If at least one kernel was found, then we need to

View file

@ -241,7 +241,7 @@ while [ "x$list" != "x" ] ; do
"single ${GRUB_CMDLINE_LINUX}" "single ${GRUB_CMDLINE_LINUX}"
fi fi
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
done done
# If at least one kernel was found, then we need to # If at least one kernel was found, then we need to

View file

@ -255,12 +255,12 @@ while [ "x${xen_list}" != "x" ] ; do
"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
fi fi
list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
done done
if [ x"$is_top_level" != xtrue ]; then if [ x"$is_top_level" != xtrue ]; then
echo ' }' echo ' }'
fi fi
xen_list=`echo $xen_list | tr ' ' '\n' | grep -vx $current_xen | tr '\n' ' '` xen_list=`echo $xen_list | tr ' ' '\n' | fgrep -vx "$current_xen" | tr '\n' ' '`
done done
# If at least one kernel was found, then we need to # If at least one kernel was found, then we need to