Here's an updated version of Dotan's patch (that was line wrapped).

---

Passing huge size values to create_cq/resize_cq causes hang in align_cq_size.
Fix this by validating input, similiar to what we do for create_qp.

Signed-off-by: Dotan Barak <[EMAIL PROTECTED]>
Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]>

Index: last_stable/src/userspace/libmthca/src/verbs.c
===================================================================
--- last_stable.orig/src/userspace/libmthca/src/verbs.c 2006-07-04 
15:22:20.000000000 +0300
+++ last_stable/src/userspace/libmthca/src/verbs.c      2006-07-04 
15:23:49.000000000 +0300
@@ -174,6 +174,9 @@ struct ibv_cq *mthca_create_cq(struct ib
        struct mthca_cq            *cq;
        int                         ret;
 
+       if (cqe > 131072)
+               return NULL;
+
        cq = malloc(sizeof *cq);
        if (!cq)
                return NULL;
@@ -264,6 +268,9 @@ int mthca_resize_cq(struct ibv_cq *ibcq,
        int old_cqe;
        int ret;
 
+       if (cqe > 131072)
+               return EINVAL;
+
        pthread_spin_lock(&cq->lock);
 
        cqe = align_cq_size(cqe);

-- 
MST

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to