Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86dfbecd authored by Hal Rosenstock's avatar Hal Rosenstock Committed by Roland Dreier
Browse files

IB/mad: Fix memory leak in switch handling in ib_mad_recv_done_handler()



If agent_send_response() returns an error, we shouldn't do anything
differently than if it succeeds; setting response to NULL just means
that the response buffer gets leaked.

Signed-off-by: default avatarSuresh Shelvapille <suri@baymicrosystems.com>
Signed-off-by: default avatarHal Rosenstock <hal.rosenstock@gmail.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 445d6807
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -1916,12 +1916,11 @@ static void ib_mad_recv_done_handler(struct ib_mad_port_private *port_priv,
			response->header.recv_wc.recv_buf.mad = &response->mad.mad;
			response->header.recv_wc.recv_buf.grh = &response->grh;

			if (!agent_send_response(&response->mad.mad,
			agent_send_response(&response->mad.mad,
					    &response->grh, wc,
					    port_priv->device,
					    smi_get_fwd_port(&recv->mad.smp),
						 qp_info->qp->qp_num))
				response = NULL;
					    qp_info->qp->qp_num);

			goto out;
		}