From: Shani Michaelli Date: Sun, 9 Mar 2014 16:36:50 +0000 (+0200) Subject: mlx4_core: Check return status of rdma_resolve_ip X-Git-Tag: v4.1.12-92~293^2~1^2~43 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=563b4dadb28a497d6216f1d0f879e549104051fc;p=users%2Fjedix%2Flinux-maple.git mlx4_core: Check return status of rdma_resolve_ip Fix usage of rdma_resolve_ip() when return status was not checked for success. Signed-off-by: Shani Michaeli (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index 38339d220d7f5..2f86a5aea16cc 100644 --- a/drivers/infiniband/core/addr.c +++ b/drivers/infiniband/core/addr.c @@ -452,8 +452,13 @@ struct resolve_cb_context { static void resolve_cb(int status, struct sockaddr *src_addr, struct rdma_dev_addr *addr, void *context) { - memcpy(((struct resolve_cb_context *)context)->addr, addr, sizeof(struct - rdma_dev_addr)); + if (!status) + memcpy(((struct resolve_cb_context *)context)->addr, addr, + sizeof(struct rdma_dev_addr)); + else + memset( + ((struct resolve_cb_context *)context)->addr->dst_dev_addr, + 0, sizeof(unsigned char) * MAX_ADDR_LEN); complete(&((struct resolve_cb_context *)context)->comp); }