aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2017-05-06 14:43:47 +0200
committerUlrich Müller <ulm@gentoo.org>2017-05-06 14:43:47 +0200
commit2c5554fe64ace6f8cb082b6bd442e13dc3999c0c (patch)
treed9662e39e65cb322d6536d6744537ca48216bfcb /modules
parentUpdate version to 1.4.9. (diff)
downloadeselect-2c5554fe64ace6f8cb082b6bd442e13dc3999c0c.tar.gz
eselect-2c5554fe64ace6f8cb082b6bd442e13dc3999c0c.tar.bz2
eselect-2c5554fe64ace6f8cb082b6bd442e13dc3999c0c.zip
Check range of number in kernel and profile modules.
* modules/kernel.eselect (set_symlink): * modules/profile.eselect (set_symlink): Check range of number, bug 617572. Thanks to Takuto Yoshida <otakuto.gentoo@gmail.com>.
Diffstat (limited to 'modules')
-rw-r--r--modules/kernel.eselect2
-rw-r--r--modules/profile.eselect2
2 files changed, 4 insertions, 0 deletions
diff --git a/modules/kernel.eselect b/modules/kernel.eselect
index 3104a98..e76c143 100644
--- a/modules/kernel.eselect
+++ b/modules/kernel.eselect
@@ -44,6 +44,8 @@ set_symlink() {
if is_number "${target}"; then
local targets=( $(find_targets) )
+ [[ ${target} -ge 1 && ${target} -le ${#targets[@]} ]] \
+ || die -q "Number out of range: $1"
target=${targets[target-1]}
fi
diff --git a/modules/profile.eselect b/modules/profile.eselect
index 68d9b8a..8d95c01 100644
--- a/modules/profile.eselect
+++ b/modules/profile.eselect
@@ -80,6 +80,8 @@ set_symlink() {
targets=( $(find_targets) )
[[ ${#targets[@]} -eq 0 ]] \
&& die -q "Failed to get a list of valid profiles"
+ [[ ${target} -ge 1 && ${target} -le ${#targets[@]} ]] \
+ || die -q "Number out of range: $1"
target=${targets[target-1]}
repo=${target%%::*}; target=${target#*::}
repopath=${target%%::*}; target=${target#*::}