diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-05-20 01:17:38 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-05-20 01:17:38 +0200 |
commit | 6ac8a3ca650ead149ed4062a6b06c92a7a961520 (patch) | |
tree | 07958d0b3f0340a6562983f0c5c94f73c7db48a5 | |
parent | 926dd18a7a335c231774288702eb35efb9d1058a (diff) |
devether: handle malloc error in etherprobe()
-rw-r--r-- | sys/src/9/pc/devether.c | 7 |
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); |