Date: 01 Jan 2003 08:40:50 -0700
On Tue, 2002-12-31 at 20:24, 寮?浜?wrote:
>
> m_clalloc(ncl, nowait),whether ncl will be too large to alloc?
> when this occur,
>
>
> m_clalloc(ncl, nowait)
> register int ncl;
> int nowait;
> {
> #ifdef __ECOS
> caddr_t p;
> int i;
>
> if (ncl != 1) {
> panic("Allocate multiple clusters!");
> }
> p = (caddr_t)cyg_net_cluster_alloc();
> if (p == NULL) {
> m_reclaim();
> return (mclfree != NULL);
> }
> for (i = 0; i < ncl; i++) {//DANGER!
> ((union mcluster *)p)->mcl_next = mclfree;
> mclfree = (union mcluster *)p;
> p += MCLBYTES;
> mbstat.m_clfree++;
> }
> mbstat.m_clusters += ncl;
> return (1);
>
>
>
> p += MCLBYTES maybe overflowed!
> right?
No, because ncl == 1.
--
------------------------------------------------------------
Gary Thomas |
MLB Associates | Consulting for the
+1 (970) 229-1963 | Embedded world
http://www.mlbassoc.com/ |
email: <gary@mlbassoc.com> |
gpg: http://www.chez-thomas.org/gary/gpg_key.asc
------------------------------------------------------------