diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2016-10-10 23:02:51 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-10-10 23:02:51 -0400 |
| commit | 3873691e5ab34fa26948643d038a2b98c4437298 (patch) | |
| tree | 5327469194c2167830bce38b56a618b754cdbeea /security | |
| parent | c2050a454c7f123d7a57fa1d76ff61bd43643abb (diff) | |
| parent | aadfa8019e8114539cfa0b1eb2e5a9c83094a590 (diff) | |
Merge remote-tracking branch 'ovl/rename2' into for-linus
Diffstat (limited to 'security')
| -rw-r--r-- | security/keys/encrypted-keys/encrypted.c | 11 | ||||
| -rw-r--r-- | security/tomoyo/realpath.c | 4 |
2 files changed, 9 insertions, 6 deletions
diff --git a/security/keys/encrypted-keys/encrypted.c b/security/keys/encrypted-keys/encrypted.c index 5adbfc32242f..17a06105ccb6 100644 --- a/security/keys/encrypted-keys/encrypted.c +++ b/security/keys/encrypted-keys/encrypted.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | #include <linux/rcupdate.h> | 29 | #include <linux/rcupdate.h> |
| 30 | #include <linux/scatterlist.h> | 30 | #include <linux/scatterlist.h> |
| 31 | #include <linux/ctype.h> | 31 | #include <linux/ctype.h> |
| 32 | #include <crypto/aes.h> | ||
| 32 | #include <crypto/hash.h> | 33 | #include <crypto/hash.h> |
| 33 | #include <crypto/sha.h> | 34 | #include <crypto/sha.h> |
| 34 | #include <crypto/skcipher.h> | 35 | #include <crypto/skcipher.h> |
| @@ -478,6 +479,7 @@ static int derived_key_encrypt(struct encrypted_key_payload *epayload, | |||
| 478 | struct crypto_skcipher *tfm; | 479 | struct crypto_skcipher *tfm; |
| 479 | struct skcipher_request *req; | 480 | struct skcipher_request *req; |
| 480 | unsigned int encrypted_datalen; | 481 | unsigned int encrypted_datalen; |
| 482 | u8 iv[AES_BLOCK_SIZE]; | ||
| 481 | unsigned int padlen; | 483 | unsigned int padlen; |
| 482 | char pad[16]; | 484 | char pad[16]; |
| 483 | int ret; | 485 | int ret; |
| @@ -500,8 +502,8 @@ static int derived_key_encrypt(struct encrypted_key_payload *epayload, | |||
| 500 | sg_init_table(sg_out, 1); | 502 | sg_init_table(sg_out, 1); |
| 501 | sg_set_buf(sg_out, epayload->encrypted_data, encrypted_datalen); | 503 | sg_set_buf(sg_out, epayload->encrypted_data, encrypted_datalen); |
| 502 | 504 | ||
| 503 | skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen, | 505 | memcpy(iv, epayload->iv, sizeof(iv)); |
| 504 | epayload->iv); | 506 | skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen, iv); |
| 505 | ret = crypto_skcipher_encrypt(req); | 507 | ret = crypto_skcipher_encrypt(req); |
| 506 | tfm = crypto_skcipher_reqtfm(req); | 508 | tfm = crypto_skcipher_reqtfm(req); |
| 507 | skcipher_request_free(req); | 509 | skcipher_request_free(req); |
| @@ -581,6 +583,7 @@ static int derived_key_decrypt(struct encrypted_key_payload *epayload, | |||
| 581 | struct crypto_skcipher *tfm; | 583 | struct crypto_skcipher *tfm; |
| 582 | struct skcipher_request *req; | 584 | struct skcipher_request *req; |
| 583 | unsigned int encrypted_datalen; | 585 | unsigned int encrypted_datalen; |
| 586 | u8 iv[AES_BLOCK_SIZE]; | ||
| 584 | char pad[16]; | 587 | char pad[16]; |
| 585 | int ret; | 588 | int ret; |
| 586 | 589 | ||
| @@ -599,8 +602,8 @@ static int derived_key_decrypt(struct encrypted_key_payload *epayload, | |||
| 599 | epayload->decrypted_datalen); | 602 | epayload->decrypted_datalen); |
| 600 | sg_set_buf(&sg_out[1], pad, sizeof pad); | 603 | sg_set_buf(&sg_out[1], pad, sizeof pad); |
| 601 | 604 | ||
| 602 | skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen, | 605 | memcpy(iv, epayload->iv, sizeof(iv)); |
| 603 | epayload->iv); | 606 | skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen, iv); |
| 604 | ret = crypto_skcipher_decrypt(req); | 607 | ret = crypto_skcipher_decrypt(req); |
| 605 | tfm = crypto_skcipher_reqtfm(req); | 608 | tfm = crypto_skcipher_reqtfm(req); |
| 606 | skcipher_request_free(req); | 609 | skcipher_request_free(req); |
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c index 5077f1968841..a97b275ca3af 100644 --- a/security/tomoyo/realpath.c +++ b/security/tomoyo/realpath.c | |||
| @@ -173,7 +173,7 @@ static char *tomoyo_get_local_path(struct dentry *dentry, char * const buffer, | |||
| 173 | * Use filesystem name if filesystem does not support rename() | 173 | * Use filesystem name if filesystem does not support rename() |
| 174 | * operation. | 174 | * operation. |
| 175 | */ | 175 | */ |
| 176 | if (!inode->i_op->rename && !inode->i_op->rename2) | 176 | if (!inode->i_op->rename) |
| 177 | goto prepend_filesystem_name; | 177 | goto prepend_filesystem_name; |
| 178 | } | 178 | } |
| 179 | /* Prepend device name. */ | 179 | /* Prepend device name. */ |
| @@ -283,7 +283,7 @@ char *tomoyo_realpath_from_path(const struct path *path) | |||
| 283 | * or dentry without vfsmount. | 283 | * or dentry without vfsmount. |
| 284 | */ | 284 | */ |
| 285 | if (!path->mnt || | 285 | if (!path->mnt || |
| 286 | (!inode->i_op->rename && !inode->i_op->rename2)) | 286 | (!inode->i_op->rename)) |
| 287 | pos = tomoyo_get_local_path(path->dentry, buf, | 287 | pos = tomoyo_get_local_path(path->dentry, buf, |
| 288 | buf_len - 1); | 288 | buf_len - 1); |
| 289 | /* Get absolute name for the rest. */ | 289 | /* Get absolute name for the rest. */ |
