diff --git a/crypto/asymmetric_keys/public_key.c b/crypto/asymmetric_keys/public_key.c index fd76b5fc3b3abe1919f193342108d87e8f1c0a93..d3a989e718f53518bafe93ddb9efea419e5d9b30 100644 --- a/crypto/asymmetric_keys/public_key.c +++ b/crypto/asymmetric_keys/public_key.c @@ -121,6 +121,7 @@ int public_key_verify_signature(const struct public_key *pkey, if (ret) goto error_free_req; + ret = -ENOMEM; outlen = crypto_akcipher_maxsize(tfm); output = kmalloc(outlen, GFP_KERNEL); if (!output) diff --git a/crypto/skcipher.c b/crypto/skcipher.c index aca07c643d4147a29cf817f1ccf1f69b6172dcfc..0e1e6c35188e24185423e91a93ef2ffea29902e0 100644 --- a/crypto/skcipher.c +++ b/crypto/skcipher.c @@ -226,7 +226,9 @@ static int skcipher_next_slow(struct skcipher_walk *walk, unsigned int bsize) void *v; if (!phys) { - buffer = walk->buffer ?: walk->page; + if (!walk->buffer) + walk->buffer = walk->page; + buffer = walk->buffer; if (buffer) goto ok; } diff --git a/scripts/sign-file.c b/scripts/sign-file.c index 53af6dc3e6c1779fbde3c5a641a880f52aa768e5..19ec468b1168f4bf209e333bc194088257716960 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -267,7 +267,7 @@ int main(int argc, char **argv) } x509_name = argv[2]; module_name = argv[3]; - if (argc == 5) { + if (argc == 5 && strcmp(argv[3], argv[4]) != 0) { dest_name = argv[4]; replace_orig = false; } else {