Message ID | 20161018183928.8539-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
PiAgZHJpdmVycy9pbmZpbmliYW5kL2h3L3FlZHIvdmVyYnMuYyB8IDQgKysrLQ0KPiAgMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiANCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL3ZlcmJzLmMNCj4gYi9kcml2ZXJzL2luZmlu aWJhbmQvaHcvcWVkci92ZXJicy5jDQo+IGluZGV4IGE2MTUxNDIuLmIyYTBlYjggMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xZWRyL3ZlcmJzLmMNCj4gKysrIGIvZHJpdmVy cy9pbmZpbmliYW5kL2h3L3FlZHIvdmVyYnMuYw0KPiBAQCAtNTExLDggKzUxMSwxMCBAQCBpbnQg cWVkcl9kZWFsbG9jX3BkKHN0cnVjdCBpYl9wZCAqaWJwZCkNCj4gIAlzdHJ1Y3QgcWVkcl9kZXYg KmRldiA9IGdldF9xZWRyX2RldihpYnBkLT5kZXZpY2UpOw0KPiAgCXN0cnVjdCBxZWRyX3BkICpw ZCA9IGdldF9xZWRyX3BkKGlicGQpOw0KPiANCj4gLQlpZiAoIXBkKQ0KPiArCWlmICghcGQpIHsN Cj4gIAkJcHJfZXJyKCJJbnZhbGlkIFBEIHJlY2VpdmVkIGluIGRlYWxsb2NfcGRcbiIpOw0KPiAr CQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+IA0KPiAgCURQX0RFQlVHKGRldiwgUUVEUl9NU0df SU5JVCwgIkRlYWxsb2NhdGluZyBQRCAlZFxuIiwgcGQtPnBkX2lkKTsNCj4gIAlkZXYtPm9wcy0+ cmRtYV9kZWFsbG9jX3BkKGRldi0+cmRtYV9jdHgsIHBkLT5wZF9pZCk7DQo+IC0tDQo+IDIuOS4z DQoNClRoYW5rcyBDb2xpbi4NCg0KQWNrZWQtYnk6IFJhbSBBbXJhbmkgPHJhbS5hbXJhbmlAY2F2 aXVtLmNvbT4NCg0K -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 10/18/2016 2:39 PM, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Currently, if pd is null then we hit a null pointer derference > on accessing pd->pd_id. Instead of just printing an error message > we should also return -EINVAL immediately. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> Applied, thanks.
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index a615142..b2a0eb8 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -511,8 +511,10 @@ int qedr_dealloc_pd(struct ib_pd *ibpd) struct qedr_dev *dev = get_qedr_dev(ibpd->device); struct qedr_pd *pd = get_qedr_pd(ibpd); - if (!pd) + if (!pd) { pr_err("Invalid PD received in dealloc_pd\n"); + return -EINVAL; + } DP_DEBUG(dev, QEDR_MSG_INIT, "Deallocating PD %d\n", pd->pd_id); dev->ops->rdma_dealloc_pd(dev->rdma_ctx, pd->pd_id);