diff options
| -rw-r--r-- | crypto/af_alg.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| diff --git a/crypto/af_alg.c b/crypto/af_alg.c index 85cea9de324a..1e5353f62067 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c @@ -672,14 +672,15 @@ void af_alg_free_areq_sgls(struct af_alg_async_req *areq)  	}  	tsgl = areq->tsgl; -	for_each_sg(tsgl, sg, areq->tsgl_entries, i) { -		if (!sg_page(sg)) -			continue; -		put_page(sg_page(sg)); -	} +	if (tsgl) { +		for_each_sg(tsgl, sg, areq->tsgl_entries, i) { +			if (!sg_page(sg)) +				continue; +			put_page(sg_page(sg)); +		} -	if (areq->tsgl && areq->tsgl_entries)  		sock_kfree_s(sk, tsgl, areq->tsgl_entries * sizeof(*tsgl)); +	}  }  EXPORT_SYMBOL_GPL(af_alg_free_areq_sgls); | 
