summaryrefslogtreecommitdiffstats
path: root/sys/dev/pccard
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-03-26 21:30:49 +0000
committersam <sam@FreeBSD.org>2005-03-26 21:30:49 +0000
commit0c114759156894187abc1f54281816b8c286d792 (patch)
tree6dff75a38369f03b343c9e1d33d00e659020a09c /sys/dev/pccard
parent55543da1eb1bdbfef03df134f78911a727fbc80e (diff)
downloadFreeBSD-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.c14
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);
OpenPOWER on IntegriCloud