Messages in this thread | | | Date | Mon, 22 Oct 2012 20:25:48 +0200 | From | Bart Van Assche <> | Subject | Re: [PATCH] prevent CVE-2012-2372 rds-ping causes kernel panic |
| |
On 10/22/12 20:12, Jay Fenlason wrote: > If you use rds-ping of the local IP address of some Infiniband HCAs > (QLogic, possibly others) the machine will panic with a BUG_ON due to > an overly restrictive check. Loosen the restriction a bit > > This should have gotten sent a while ago (it was first noticed in > https://bugzilla.redhat.com/show_bug.cgi?id=803936 > and patched in kernel-2.6.32-275.el6) but I got confused about its > embargo status and lost it. > > Signed-off-by: Jay Fenlason <fenlason@redhat.com> > > diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c > index e590949..7920c85 100644 > --- a/net/rds/ib_send.c > +++ b/net/rds/ib_send.c > @@ -544,7 +544,7 @@ int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm, > int flow_controlled = 0; > int nr_sig = 0; > > - BUG_ON(off % RDS_FRAG_SIZE); > + BUG_ON(!conn->c_loopback && off % RDS_FRAG_SIZE); > BUG_ON(hdr_off != 0 && hdr_off != sizeof(struct rds_header)); > > /* Do not send cong updates to IB loopback */
Hello Jay,
The recommended approach for checking preconditions is to use WARN_ON_ONCE(), not BUG_ON(). Linus explained this last month in a message posted on the LKML (http://lkml.org/lkml/2012/9/27/461).
Bart.
| |