[lustre-devel] [PATCH] lustre: lnet: copy the correct amountof cpts to lnet_cpts

NeilBrown neilb at suse.com
Tue Sep 25 16:36:30 PDT 2018


On Mon, Sep 24 2018, James Simmons wrote:

> The incorrect size was used in the memory copy of the requested
> cpts to net->lnet_cpts. This lead to the following in testing
> RIP: 0010:lnet_match2mt.isra.8+0x2b/0x40 [lnet]
>
> lnet_mt_of_attach+0x72/0x1b0 [lnet]
> LNetMEAttach+0x60/0x1f0 [lnet]
> ptl_send_rpc+0x26f/0xbb0 [ptlrpc]
> libcfs_debug_msg+0x57/0x80 [libcfs]
> ptlrpc_send_new_req+0x4c9/0x860 [ptlrpc]
> ptlrpc_check_set.part.21+0x855/0x18b0 [ptlrpc]
> ? try_to_del_timer_sync+0x4d/0x80
> ? del_timer_sync+0x35/0x40
> ptlrpcd_check+0x3ae/0x3f0 [ptlrpc]
> ptlrpcd+0x2be/0x320 [ptlrpc]
> ? wait_woken+0x80/0x80
>
> Changing the size from ncpts to ncpts * sizeof(*net->net_cpts)
>
> Signed-off-by: James Simmons <jsimmons at infradead.org>
> WC-bug-id: https://jira.whamcloud.com/browse/LU-11424
> Reviewed-on: https://review.whamcloud.com/33229

Thanks.  Applied.

NeilBrown


> ---
>  drivers/staging/lustre/lnet/lnet/config.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/lustre/lnet/lnet/config.c b/drivers/staging/lustre/lnet/lnet/config.c
> index c11821a..4c22416 100644
> --- a/drivers/staging/lustre/lnet/lnet/config.c
> +++ b/drivers/staging/lustre/lnet/lnet/config.c
> @@ -174,7 +174,7 @@ struct lnet_text_buf {	    /* tmp struct for parsing routes */
>  					      GFP_KERNEL);
>  		if (!net->net_cpts)
>  			return -ENOMEM;
> -		memcpy(net->net_cpts, cpts, ncpts);
> +		memcpy(net->net_cpts, cpts, ncpts * sizeof(*net->net_cpts));
>  		net->net_ncpts = ncpts;
>  		return 0;
>  	}
> -- 
> 1.8.3.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20180926/aa18bb64/attachment.sig>


More information about the lustre-devel mailing list