ref: cf08c854101ea8a9ee3e529071dc31b1e90a0377
parent: 03da1b574954cd1425bc024a5ced1f0d29b64428
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Sun May 19 21:17:38 EDT 2013
devether: handle malloc error in etherprobe()
--- a/sys/src/9/pc/devether.c
+++ b/sys/src/9/pc/devether.c
@@ -380,6 +380,10 @@
char buf[128], name[32];
ether = malloc(sizeof(Ether));
+ if(ether == nil){+ print("etherprobe: no memory for Ether\n");+ return nil;
+ }
memset(ether, 0, sizeof(Ether));
ether->ctlrno = ctlrno;
ether->tbdf = BUSUNKNOWN;
@@ -460,8 +464,7 @@
ether->limit = bsz;
}
if(ether->oq == nil)
- panic("etherreset %s: can't allocate output queue of %ld bytes",- name, bsz);
+ panic("etherreset %s: can't allocate output queue of %ld bytes", name, bsz);ether->alen = Eaddrlen;
memmove(ether->addr, ether->ea, Eaddrlen);
memset(ether->bcast, 0xFF, Eaddrlen);
--
⑨