diff options
author | sam <sam@FreeBSD.org> | 2005-03-26 21:30:49 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-03-26 21:30:49 +0000 |
commit | 0c114759156894187abc1f54281816b8c286d792 (patch) | |
tree | 6dff75a38369f03b343c9e1d33d00e659020a09c /sys/dev/pccard | |
parent | 55543da1eb1bdbfef03df134f78911a727fbc80e (diff) | |
download | FreeBSD-src-0c114759156894187abc1f54281816b8c286d792.zip FreeBSD-src-0c114759156894187abc1f54281816b8c286d792.tar.gz |
deal with failed malloc calls
Noticed by: Coverity Prevent analysis tool
Glanced at by: mdodd
Diffstat (limited to 'sys/dev/pccard')
-rw-r--r-- | sys/dev/pccard/pccard_cis_quirks.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/dev/pccard/pccard_cis_quirks.c b/sys/dev/pccard/pccard_cis_quirks.c index e465e38..596bfdb 100644 --- a/sys/dev/pccard/pccard_cis_quirks.c +++ b/sys/dev/pccard/pccard_cis_quirks.c @@ -266,13 +266,27 @@ void pccard_check_cis_quirks(device_t dev) if (pf_last == q->pf) { cfe = malloc(sizeof(*cfe), M_DEVBUF, M_NOWAIT); + if (cfe == NULL) { + device_printf(dev, "no memory for quirk (1)\n"); + continue; + } *cfe = *q->cfe; STAILQ_INSERT_TAIL(&pf->cfe_head, cfe, cfe_list); } else { pf = malloc(sizeof(*pf), M_DEVBUF, M_NOWAIT); + if (pf == NULL) { + device_printf(dev, + "no memory for pccard function\n"); + continue; + } *pf = *q->pf; STAILQ_INIT(&pf->cfe_head); cfe = malloc(sizeof(*cfe), M_DEVBUF, M_NOWAIT); + if (cfe == NULL) { + free(pf, M_DEVBUF); + device_printf(dev, "no memory for quirk (2)\n"); + continue; + } *cfe = *q->cfe; STAILQ_INSERT_TAIL(&pf->cfe_head, cfe, cfe_list); STAILQ_INSERT_TAIL(&sc->card.pf_head, pf, pf_list); |