commit:     2c5554fe64ace6f8cb082b6bd442e13dc3999c0c
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat May  6 12:43:47 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat May  6 12:43:47 2017 +0000
URL:        https://gitweb.gentoo.org/proj/eselect.git/commit/?id=2c5554fe

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 <AT> gmail.com>.

 ChangeLog               | 6 ++++++
 modules/kernel.eselect  | 2 ++
 modules/profile.eselect | 2 ++
 3 files changed, 10 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 4bd53b9..2b356bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-05-06  Ulrich Müller  <[email protected]>
+
+       * modules/kernel.eselect (set_symlink):
+       * modules/profile.eselect (set_symlink): Check range of number,
+       bug 617572. Thanks to Takuto Yoshida <[email protected]>.
+
 2017-03-22  Ulrich Müller  <[email protected]>
 
        * configure.ac: Update version to 1.4.9.

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#*::}

Reply via email to