diff -r -u 0.7.1.1/etc/banner 0.7.1.2/etc/banner --- 0.7.1.1/etc/banner 2006-11-22 04:07:20.000000000 +0900 +++ 0.7.1.2/etc/banner 2006-12-21 23:40:04.000000000 +0900 @@ -4,7 +4,7 @@ | | |_______||__| |__| |___| - Fonera Firmware (Version 0.7.1 rev 1) ------------- + Fonera Firmware (Version 0.7.1 rev 2) ------------- * * Based on OpenWrt - http://openwrt.org * Powered by FON - http://www.fon.com diff -r -u 0.7.1.1/etc/fon_revision 0.7.1.2/etc/fon_revision --- 0.7.1.1/etc/fon_revision 2006-11-16 05:08:40.000000000 +0900 +++ 0.7.1.2/etc/fon_revision 2006-12-21 23:39:58.000000000 +0900 @@ -1 +1 @@ -1 +2 diff -r -u 0.7.1.1/etc/init.d/N45ntpclient 0.7.1.2/etc/init.d/N45ntpclient --- 0.7.1.1/etc/init.d/N45ntpclient 2006-11-21 02:36:14.000000000 +0900 +++ 0.7.1.2/etc/init.d/N45ntpclient 2006-12-21 21:57:40.000000000 +0900 @@ -5,6 +5,9 @@ crontab_file="/etc/crontabs/root" ntp_file="/etc/config/ntpservers" +#Flush previous ntp servers... +cat /etc/crontabs/root | grep -v ntp > /etc/crontabs/root + randline=$(expr `head -c1 /dev/urandom | hexdump -d | sed 's/\ //g' | sed 's/^0*//' | head -n1` % `wc -l $ntp_file | sed 's/^\ [ \t]*//' | cut -d" " -f1`) ntpserver=$(head -n$randline $ntp_file | tail -n1) @@ -25,6 +28,6 @@ randminute=$(expr `head -c2 /dev/urandom | hexdump -d | sed 's/\ //g' | sed 's/^0*//' | head -n1` % 60) randhour=$(expr `head -c2 /dev/urandom | hexdump -d | sed 's/\ //g' | sed 's/^0*//' | head -n1` % 24) echo "$randminute $randhour * * * ntpclient -s -h $ntpserver" >> $crontab_file -ntpclient -s -h $ntpserver +ntpclient -s -h $ntpserver & crontab -l diff -r -u 0.7.1.1/usr/lib/webif/validate.awk 0.7.1.2/usr/lib/webif/validate.awk --- 0.7.1.1/usr/lib/webif/validate.awk 2006-11-18 03:01:48.000000000 +0900 +++ 0.7.1.2/usr/lib/webif/validate.awk 2006-12-21 22:20:29.000000000 +0900 @@ -11,7 +11,7 @@ { valid_type = 0 valid = 1 - if ( $0 ~ /[\\`\"\']/ ) { + if ( $0 ~ /\|@$|['`"$%&()]/ ) { valid = 0 verr = "@TR<>" } @@ -29,6 +29,10 @@ if (value !~ /^[0-9]*$/) { valid = 0; verr = "@TR<>" } } +$1 == "string" { + valid_type = 1 +} + # FIXME: add proper netmask validation ($1 == "ip") || ($1 == "netmask") { valid_type = 1 @@ -75,20 +79,6 @@ verr = "@TR<>" } } -$1 == "user" { - valid_type = 1 - if (value ~ /[\<\>\&|;]/) { - valid = 0 - verr = "@TR<>" - } -} -$1 == "string" { - if (value ~ /;/) { - valid = 0 - verr = "@TR<>" - } - valid_type = 1 -} $1 == "mac" { valid_type = 1 @@ -137,6 +127,78 @@ } } +#$1 == "submit" { +# valid_type = 1 +# if (value !~ /[S|s]ubmit/) { +# valid = 0 +# verr = "@TR<>" +# } +#} + +$1 == "bool" { + valid_type = 1 + if (value !~ /^[01]$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "add_remove" { + valid_type = 1 + if (value !~ /^(add|remove)$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "tcp_udp" { + valid_type = 1 + if (value !~ /^(tcp|udp|both)$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "chk_bgmode" { + valid_type = 1 + if (value !~ /^(g|b|mixed)$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "chk_channel" { + valid_type = 1 + if (value !~ /^([01][0-9]|auto)$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "conn_type" { + valid_type = 1 + if (value !~ /^(dhcp|static|pppoe|pptp)$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "chk_auth" { + valid_type = 1 + if (value !~ /^(wpa|wpa2|mixed|wep|open)$/) { + valid = 0 + verr = "@TR<>" + } +} + +$1 == "chk_crypto" { + valid_type = 1 + if (value !~ /^(tkip\+aes|tkip|aes)$/) { + valid = 0 + verr = "@TR<>" + } +} + valid_type != 1 { valid = 0 } valid == 1 { diff -r -u 0.7.1.1/www/cgi-bin/webif/adv_net.sh 0.7.1.2/www/cgi-bin/webif/adv_net.sh --- 0.7.1.1/www/cgi-bin/webif/adv_net.sh 2006-11-23 20:54:21.000000000 +0900 +++ 0.7.1.2/www/cgi-bin/webif/adv_net.sh 2006-12-21 22:20:29.000000000 +0900 @@ -3,7 +3,7 @@ . /usr/lib/webif/webif.sh validate <>||$FORM_submit +string|FORM_submit|@TR<>|max=10|$FORM_submit EOF if [ "$?" != "0" ] @@ -25,10 +25,10 @@ validate <>|required|$FORM_ipaddr ip|FORM_netmask|@TR<>|required|$FORM_netmask -int|FORM_dhcp|@TR<>|required|$FORM_dhcp -int|FORM_lan_wan|@TR<WAN>>|required|$FORM_lan_wan -int|FORM_hs_lan|@TR<Private>>|required|$FORM_hs_lan -int|FORM_hs_wan|@TR<WAN>>|required|$FORM_hs_wan +bool|FORM_dhcp|@TR<>|required|$FORM_dhcp +bool|FORM_lan_wan|@TR<WAN>>|required|$FORM_lan_wan +bool|FORM_hs_lan|@TR<Private>>|required|$FORM_hs_lan +bool|FORM_hs_wan|@TR<WAN>>|required|$FORM_hs_wan EOF equal "$?" 0 && { diff -r -u 0.7.1.1/www/cgi-bin/webif/adv_pf.sh 0.7.1.2/www/cgi-bin/webif/adv_pf.sh --- 0.7.1.1/www/cgi-bin/webif/adv_pf.sh 2006-11-23 01:45:46.000000000 +0900 +++ 0.7.1.2/www/cgi-bin/webif/adv_pf.sh 2006-12-21 22:20:29.000000000 +0900 @@ -4,7 +4,7 @@ . /usr/lib/webif/advanced.sh validate <>||$FORM_submit +string|FORM_submit|@TR<>|max=10|$FORM_submit EOF if [ "$?" != "0" ] @@ -24,8 +24,7 @@ if [ "$FORM_submit" != "" ] then validate <>|required|$FORM_srule -string|FORM_srule|@TR<>|required|$FORM_srule EOF if [ "$?" != "0" ] then @@ -34,14 +33,12 @@ if [ "$FORM_srule" == "add" ] then validate <>|required|$FORM_origp port|FORM_origp|@TR<>|required|$FORM_origp port|FORM_origpr|@TR<>||$FORM_origpr -user|FORM_destip|@TR<>|required|$FORM_destip ip|FORM_destip|@TR<>|required|$FORM_destip -user|FORM_destp|@TR<>|required|$FORM_destp port|FORM_destp|@TR<>|required|$FORM_destp port|FORM_destpr|@TR<>||$FORM_destpr +tcp_udp|FORM_sproto|@TR<>||$FORM_sproto EOF if [ "$?" != "0" ] then @@ -102,8 +99,7 @@ fi else validate <>|required|$FORM_sruledel -int|FORM_sruledel|@TR<>|min=0|$FORM_sruledel EOF if [ "$?" != "0" ] then @@ -258,7 +254,7 @@ add_label_cell|@TR<