Merge "cryptfs: check for errors in create_encrypted_random_key()"

am: f156c40404

Change-Id: I67871c595dfeab96de3096e0bcf61c69261cb9cc
gugelfrei
Eric Biggers 6 years ago committed by android-build-merger
commit 8938607c02

@ -1398,14 +1398,15 @@ static int decrypt_master_key(const char* passwd, unsigned char* decrypted_maste
static int create_encrypted_random_key(const char* passwd, unsigned char* master_key, static int create_encrypted_random_key(const char* passwd, unsigned char* master_key,
unsigned char* salt, struct crypt_mnt_ftr* crypt_ftr) { unsigned char* salt, struct crypt_mnt_ftr* crypt_ftr) {
int fd;
unsigned char key_buf[MAX_KEY_LEN]; unsigned char key_buf[MAX_KEY_LEN];
/* Get some random bits for a key */ /* Get some random bits for a key and salt */
fd = open("/dev/urandom", O_RDONLY | O_CLOEXEC); if (android::vold::ReadRandomBytes(sizeof(key_buf), reinterpret_cast<char*>(key_buf)) != 0) {
read(fd, key_buf, sizeof(key_buf)); return -1;
read(fd, salt, SALT_LEN); }
close(fd); if (android::vold::ReadRandomBytes(SALT_LEN, reinterpret_cast<char*>(salt)) != 0) {
return -1;
}
/* Now encrypt it with the password */ /* Now encrypt it with the password */
return encrypt_master_key(passwd, salt, key_buf, master_key, crypt_ftr); return encrypt_master_key(passwd, salt, key_buf, master_key, crypt_ftr);

Loading…
Cancel
Save