ume> Index: sys/net/if.c
ume> diff -u sys/net/if.c.orig sys/net/if.c
ume> --- sys/net/if.c.orig Mon Jul 16 01:39:34 2001
ume> +++ sys/net/if.c Mon Jul 16 01:51:49 2001
Oops, it was wrong version.
Index: sys/net/if.c
diff -u sys/net/if.c.orig sys/net/if.c
--- sys/net/if.c.orig Mon Jul 16 01:39:34 2001
+++ sys/net/if.c Mon Jul 16 01:51:49 2001
@@ -1412,8 +1412,14 @@
llsa = 0;
}
- MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma, M_IFMADDR, M_WAITOK);
- MALLOC(dupsa, struct sockaddr *, sa->sa_len, M_IFMADDR, M_WAITOK);
+ MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma, M_IFMADDR, M_NOWAIT);
+ if (ifma == NULL)
+ return (ENOBUFS);
+ MALLOC(dupsa, struct sockaddr *, sa->sa_len, M_IFMADDR, M_NOWAIT);
+ if (dupsa == NULL) {
+ FREE(ifma, M_IFMADDR);
+ return (ENOBUFS);
+ }
bcopy(sa, dupsa, sa->sa_len);
ifma->ifma_addr = dupsa;
@@ -1441,9 +1447,15 @@
ifma->ifma_refcount++;
} else {
MALLOC(ifma, struct ifmultiaddr *, sizeof *ifma,
- M_IFMADDR, M_WAITOK);
+ M_IFMADDR, M_NOWAIT);
+ if (ifma == NULL)
+ return (ENOBUFS);
MALLOC(dupsa, struct sockaddr *, llsa->sa_len,
- M_IFMADDR, M_WAITOK);
+ M_IFMADDR, M_NOWAIT);
+ if (dupsa == NULL) {
+ FREE(ifma, M_IFMADDR);
+ return (ENOBUFS);
+ }
bcopy(llsa, dupsa, llsa->sa_len);
ifma->ifma_addr = dupsa;
ifma->ifma_ifp = ifp;
--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
[EMAIL PROTECTED] [EMAIL PROTECTED] ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message