[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <8496f91a0803250045k2fc4040dg74126f30c1487fd@mail.gmail.com>
Date: Tue, 25 Mar 2008 10:45:41 +0300
From: "Matvejchikov Ilya" <matvejchikov@...il.com>
To: netdev@...r.kernel.org
Subject: [RFC][LAPB] write_queue limit in lapb_data_request
Hi folks,
LAPB doesn't check for write_queue length in lapb_data_request(). So
in some conditions it may grow unlimited. There is a potential problem
for small systems.
It seems like this for me:
345 int lapb_data_request(struct net_device *dev, struct sk_buff *skb)
346 {
347 struct lapb_cb *lapb = lapb_devtostruct(dev);
348 int rc = LAPB_BADTOKEN;
349
350 if (!lapb)
351 goto out;
352
353 rc = LAPB_NOTCONNECTED;
354 if (lapb->state != LAPB_STATE_3 && lapb->state != LAPB_STATE_4)
355 goto out_put;
356
+
+ if (lapb->write_queue.qlen >= LAPB_WRITE_QUEUE_MAX)
+ goto out_put;
+
357 skb_queue_tail(&lapb->write_queue, skb);
358 lapb_kick(lapb);
359 rc = LAPB_OK;
360 out_put:
361 lapb_put(lapb);
362 out:
363 return rc;
364 }
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists