Messages in this thread | | | Subject | Re: [PATCH v2 1/2] crypto: virtio: Fix src/dst scatterlist calculation in __virtio_crypto_skcipher_do_req() | From | "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)" <> | Date | Tue, 26 May 2020 15:21:05 +0800 |
| |
Hi Markus,
On 2020/5/26 15:03, Markus Elfring wrote: >> Fix it by sg_next() on calculation of src/dst scatterlist. > > Wording adjustment: > … by calling the function “sg_next” … > OK, thanks.
> > … >> +++ b/drivers/crypto/virtio/virtio_crypto_algs.c >> @@ -350,13 +350,18 @@ __virtio_crypto_skcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req, > … >> src_nents = sg_nents_for_len(req->src, req->cryptlen); >> + if (src_nents < 0) { >> + pr_err("Invalid number of src SG.\n"); >> + return src_nents; >> + } >> + >> dst_nents = sg_nents(req->dst); > … > > I suggest to move the addition of such input parameter validation > to a separate update step. > Um...The 'src_nents' will be used as a loop condition, so validate it here is needed ?
''' /* Source data */ - for (i = 0; i < src_nents; i++) - sgs[num_out++] = &req->src[i]; + for (sg = req->src; src_nents; sg = sg_next(sg), src_nents--) + sgs[num_out++] = sg; '''
> Regards, > Markus >
-- --- Regards, Longpeng(Mike)
| |