crypto: algif_skcipher - set error code when kcalloc fails
Fix bug https://bugzilla.kernel.org/show_bug.cgi?id=188521. In function skcipher_recvmsg_async(), variable err takes the return value, and its value should be negative on failures. Because variable err may be reassigned and checked before calling kcalloc(), its value may be 0 (indicates no error) even if kcalloc() fails. This patch fixes the bug by explicitly assigning -ENOMEM to err when kcalloc() returns a NULL pointer. Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
37d8468108
commit
e2c1b82330
@ -566,8 +566,10 @@ static int skcipher_recvmsg_async(struct socket *sock, struct msghdr *msg,
|
|||||||
* need to expand */
|
* need to expand */
|
||||||
tmp = kcalloc(tx_nents * 2, sizeof(*tmp),
|
tmp = kcalloc(tx_nents * 2, sizeof(*tmp),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!tmp)
|
if (!tmp) {
|
||||||
|
err = -ENOMEM;
|
||||||
goto free;
|
goto free;
|
||||||
|
}
|
||||||
|
|
||||||
sg_init_table(tmp, tx_nents * 2);
|
sg_init_table(tmp, tx_nents * 2);
|
||||||
for (x = 0; x < tx_nents; x++)
|
for (x = 0; x < tx_nents; x++)
|
||||||
|
Loading…
Reference in New Issue
Block a user