[ofa-general] [PATCH] EHCA: Enforce a positive guid_entry index
Alexander Schmidt
alexs at linux.vnet.ibm.com
Tue Jun 16 04:45:31 PDT 2009
On Tue, 16 Jun 2009 09:35:57 +0200
Alexander Schmidt <alexs at linux.vnet.ibm.com> wrote:
> Hi Roel,
>
> On Mon, 15 Jun 2009 20:04:08 +0200
> Roel Kluin <roel.kluin at gmail.com> wrote:
>
> > This prevents the memcpy of a guid_entries element using a negative index.
> >
> > Signed-off-by: Roel Kluin <roel.kluin at gmail.com>
> > ---
> > drivers/infiniband/hw/ehca/ehca_hca.c | 2 +-
> > drivers/infiniband/hw/ehca/ehca_iverbs.h | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/infiniband/hw/ehca/ehca_hca.c b/drivers/infiniband/hw/ehca/ehca_hca.c
> > index 9209c53..1175ee1 100644
> > --- a/drivers/infiniband/hw/ehca/ehca_hca.c
> > +++ b/drivers/infiniband/hw/ehca/ehca_hca.c
> > @@ -311,7 +311,7 @@ query_pkey1:
> > }
> >
> > int ehca_query_gid(struct ib_device *ibdev, u8 port,
> > - int index, union ib_gid *gid)
> > + unsigned index, union ib_gid *gid)
> > {
> > int ret = 0;
> > u64 h_ret;
> > diff --git a/drivers/infiniband/hw/ehca/ehca_iverbs.h b/drivers/infiniband/hw/ehca/ehca_iverbs.h
> > index 8f7f282..05a83bb 100644
> > --- a/drivers/infiniband/hw/ehca/ehca_iverbs.h
> > +++ b/drivers/infiniband/hw/ehca/ehca_iverbs.h
> > @@ -54,7 +54,7 @@ int ehca_query_sma_attr(struct ehca_shca *shca, u8 port,
> >
> > int ehca_query_pkey(struct ib_device *ibdev, u8 port, u16 index, u16 * pkey);
> >
> > -int ehca_query_gid(struct ib_device *ibdev, u8 port, int index,
> > +int ehca_query_gid(struct ib_device *ibdev, u8 port, unsigned index,
> > union ib_gid *gid);
> >
> > int ehca_modify_port(struct ib_device *ibdev, u8 port, int port_modify_mask,
>
> Thank you for checking this code. I think a better solution for this would be to
> change the index parameter of ehca_query_gid() from int to u8. Both functions
> that call ehca_query_gid() pass an u8 and this way you could also remove the
>
> if (index > 255) {
> ehca_err(&shca->ib_device, "Invalid index: %x.", index);
> return -EINVAL;
> }
>
> check from ehca_query_gid().
>
> If you could send an updated patch, I would be happy to take a look again
> and ack it.
I just noticed that ehca_query_gid() is an exported interface and there is a
generic ib_query_gid() function which also gets an int, so we cannot accept
this change.
Regards,
Alex
More information about the general
mailing list