From: James Simmons Date: Tue, 25 Sep 2018 03:28:57 +0000 (-0400) Subject: LU-11424 lnet: copy the correct amount of cpts to lnet_cpts X-Git-Tag: 2.11.56~24 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=5afe99cac9a7be5bf776d68c65b2fe51b31591ae;p=fs%2Flustre-release.git LU-11424 lnet: copy the correct amount of cpts to lnet_cpts 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) Change-Id: I10832430e53ccc5b40ebce3ddfd2cf9ea330b0df Signed-off-by: James Simmons Reviewed-on: https://review.whamcloud.com/33229 Reviewed-by: Amir Shehata Tested-by: Jenkins Reviewed-by: Sonia Sharma Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lnet/lnet/config.c b/lnet/lnet/config.c index 70240ad..ab314a3 100644 --- a/lnet/lnet/config.c +++ b/lnet/lnet/config.c @@ -175,7 +175,7 @@ lnet_net_append_cpts(__u32 *cpts, __u32 ncpts, struct lnet_net *net) LIBCFS_ALLOC(net->net_cpts, sizeof(*net->net_cpts) * ncpts); if (net->net_cpts == NULL) return -ENOMEM; - memcpy(net->net_cpts, cpts, ncpts); + memcpy(net->net_cpts, cpts, ncpts * sizeof(*net->net_cpts)); net->net_ncpts = ncpts; return 0; }