summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2015-01-12 12:47:38 +1000
committerAllan McRae <allan@archlinux.org>2015-01-12 15:23:01 +1000
commita31426d3ea79f7b22d5000f2bfecb52f95246444 (patch)
tree44ca5217830d3d42447eca961cdad8d736bf60b6
parente8d757b6ba9ca545266c43279cfef1a48971c013 (diff)
downloadpacman-a31426d3ea79f7b22d5000f2bfecb52f95246444.tar.xz
makepkg: clear destination array in array_build
If an already used array is passed array_build, some entries from the old array could be carried over if the old array was longer than the new one. Clear the destination array before adding elements to it to prevent this issue. Fixes: https://bugs.archlinux.org/task/43387 Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/makepkg.sh.in3
1 files changed, 3 insertions, 0 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 22e02535..da68dc74 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2466,6 +2466,9 @@ array_build() {
# Build an array of the indicies of the source array.
eval "keys=(\"\${!$2[@]}\")"
+ # Clear the destination array
+ eval "$dest=()"
+
# Read values indirectly via their index. This approach gives us support
# for associative arrays, sparse arrays, and empty strings as elements.
for i in "${keys[@]}"; do