aboutsummaryrefslogtreecommitdiffstats
path: root/package/uci
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-08-14 00:45:15 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-08-14 00:45:15 +0000
commit65d6e285f1998cd7c5431ecbbd46c64464a82062 (patch)
tree3c62cb145364b8a477fc12616b725d89328b7b24 /package/uci
parent8f501d19cdffd128c4bc9cdbf11454cde43b2146 (diff)
downloadupstream-65d6e285f1998cd7c5431ecbbd46c64464a82062.tar.gz
upstream-65d6e285f1998cd7c5431ecbbd46c64464a82062.tar.bz2
upstream-65d6e285f1998cd7c5431ecbbd46c64464a82062.zip
[package] base-files, uci: properly revert list state on config_load
This fixes a bug where lists end up with duplicate values if config_load was invoked multiple times. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22629 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/uci')
-rw-r--r--package/uci/Makefile2
-rw-r--r--package/uci/files/lib/config/uci.sh6
2 files changed, 7 insertions, 1 deletions
diff --git a/package/uci/Makefile b/package/uci/Makefile
index 925e42fd08..3c88dae37e 100644
--- a/package/uci/Makefile
+++ b/package/uci/Makefile
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
UCI_VERSION=12012009
-UCI_RELEASE=5
+UCI_RELEASE=6
PKG_NAME:=uci
PKG_VERSION:=$(UCI_VERSION)$(if $(UCI_RELEASE),.$(UCI_RELEASE))
diff --git a/package/uci/files/lib/config/uci.sh b/package/uci/files/lib/config/uci.sh
index d759615bd5..8dcb92b9f8 100644
--- a/package/uci/files/lib/config/uci.sh
+++ b/package/uci/files/lib/config/uci.sh
@@ -23,9 +23,15 @@ uci_load() {
local PACKAGE="$1"
local DATA
local RET
+ local VAR
_C=0
if [ -z "$CONFIG_APPEND" ]; then
+ for VAR in $CONFIG_LIST_STATE; do
+ export ${NO_EXPORT:+-n} CONFIG_${VAR}=
+ export ${NO_EXPORT:+-n} CONFIG_${VAR}_LENGTH=
+ done
+ export ${NO_EXPORT:+-n} CONFIG_LIST_STATE=
export ${NO_EXPORT:+-n} CONFIG_SECTIONS=
export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0
export ${NO_EXPORT:+-n} CONFIG_SECTION=