OSDN Git Service

Fix Shamus bricked by encryption upgrade
authorPaul Lawrence <paullawrence@google.com>
Mon, 8 Sep 2014 18:28:19 +0000 (11:28 -0700)
committerPaul Lawrence <paullawrence@google.com>
Mon, 8 Sep 2014 19:52:26 +0000 (12:52 -0700)
Bug: 17358530
Change-Id: I95207b62131224a2ed7ae3b75621a09acd69ea79

cryptfs.c

index b729616..563acbc 100644 (file)
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -1788,6 +1788,17 @@ static int test_mount_encrypted_fs(struct crypt_mnt_ftr* crypt_ftr,
             rc = put_crypt_ftr_and_key(crypt_ftr);
         }
         SLOGD("Key Derivation Function upgrade: rc=%d\n", rc);
+
+        // Do not fail even if upgrade failed - machine is bootable
+        // Note that if this code is ever hit, there is a *serious* problem
+        // since KDFs should never fail. You *must* fix the kdf before
+        // proceeding!
+        if (rc) {
+          SLOGW("Upgrade failed with error %d,"
+                " but continuing with previous state",
+                rc);
+          rc = 0;
+        }
     }
   }