uqmi: stop proto handler if verify pin count is not 3
authorFlorian Eckert <fe@dev.tdt.de>
Thu, 12 Apr 2018 08:31:29 +0000 (10:31 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:22:06 +0000 (17:22 +0100)
Check pin count value from pin status and stop verification the pin if
the value is less then 3. This should prevent the proto-handler to
lock the SIM. If SIM is locked then the PUK is needed.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(backported from 0c9d06b5b243334123eafaf2e26a15ec2757767e)

package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

index 422d00525ef92a9609980b96b857fd2ca2818c7f..9b2f69f009f467e204dcab6f6c8557398057179f 100755 (executable)
@@ -96,6 +96,7 @@ proto_qmi_setup() {
                . /usr/share/libubox/jshn.sh
                json_load "$(uqmi -s -d "$device" --get-pin-status)"
                json_get_var pin1_status pin1_status
+               json_get_var pin1_verify_tries pin1_verify_tries
 
                case "$pin1_status" in
                        disabled)
@@ -108,6 +109,12 @@ proto_qmi_setup() {
                                return 1
                                ;;
                        not_verified)
+                               [ "$pin1_verify_tries" -lt "3" ] && {
+                                       echo "PIN verify count value is $pin1_verify_tries this is below the limit of 3"
+                                       proto_notify_error "$interface" PIN_TRIES_BELOW_LIMIT
+                                       proto_block_restart "$interface"
+                                       return 1
+                               }
                                if [ -n "$pincode" ]; then
                                        uqmi -s -d "$device" --verify-pin1 "$pincode" > /dev/null 2>&1 || uqmi -s -d "$device" --uim-verify-pin1 "$pincode" > /dev/null 2>&1 || {
                                                echo "Unable to verify PIN"