Commit 5f21d7d2 authored by 蒋家盛's avatar 蒋家盛 Committed by Herbert Xu
Browse files

crypto: af_alg - rewrite NULL pointer check



Because of the possible alloc failure of the alloc_page(), it could
return NULL pointer.
And there is a check below the sg_assign_page().
But it will be more logical to move the NULL check before the
sg_assign_page().

Signed-off-by: default avatarJiasheng Jiang <jiasheng@iscas.ac.cn>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent dd827abe
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -931,16 +931,19 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
			sg_unmark_end(sg + sgl->cur - 1);

		do {
			struct page *pg;
			unsigned int i = sgl->cur;

			plen = min_t(size_t, len, PAGE_SIZE);

			sg_assign_page(sg + i, alloc_page(GFP_KERNEL));
			if (!sg_page(sg + i)) {
			pg = alloc_page(GFP_KERNEL);
			if (!pg) {
				err = -ENOMEM;
				goto unlock;
			}

			sg_assign_page(sg + i, pg);

			err = memcpy_from_msg(page_address(sg_page(sg + i)),
					      msg, plen);
			if (err) {