summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/devether.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-05-20 01:17:38 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-05-20 01:17:38 +0200
commit6ac8a3ca650ead149ed4062a6b06c92a7a961520 (patch)
tree07958d0b3f0340a6562983f0c5c94f73c7db48a5 /sys/src/9/pc/devether.c
parent926dd18a7a335c231774288702eb35efb9d1058a (diff)
devether: handle malloc error in etherprobe()
Diffstat (limited to 'sys/src/9/pc/devether.c')
-rw-r--r--sys/src/9/pc/devether.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/src/9/pc/devether.c b/sys/src/9/pc/devether.c
index 1a5d08bbd..91d1c8574 100644
--- a/sys/src/9/pc/devether.c
+++ b/sys/src/9/pc/devether.c
@@ -380,6 +380,10 @@ etherprobe(int cardno, int ctlrno)
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 @@ etherprobe(int cardno, int ctlrno)
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);