handle malloc failure and sk_vpd_prodname potentially being null for
other reasons Noticed by: Coverity Prevent analysis tool Reviewed by: bz, jmg
This commit is contained in:
parent
5309f84168
commit
af5691cdd5
@ -496,10 +496,12 @@ sk_vpd_read(sc)
|
|||||||
|
|
||||||
pos += sizeof(res);
|
pos += sizeof(res);
|
||||||
sc->sk_vpd_prodname = malloc(res.vr_len + 1, M_DEVBUF, M_NOWAIT);
|
sc->sk_vpd_prodname = malloc(res.vr_len + 1, M_DEVBUF, M_NOWAIT);
|
||||||
for (i = 0; i < res.vr_len; i++)
|
if (sc->sk_vpd_prodname != NULL) {
|
||||||
sc->sk_vpd_prodname[i] = sk_vpd_readbyte(sc, i + pos);
|
for (i = 0; i < res.vr_len; i++)
|
||||||
sc->sk_vpd_prodname[i] = '\0';
|
sc->sk_vpd_prodname[i] = sk_vpd_readbyte(sc, i + pos);
|
||||||
pos += i;
|
sc->sk_vpd_prodname[i] = '\0';
|
||||||
|
}
|
||||||
|
pos += res.vr_len;
|
||||||
|
|
||||||
sk_vpd_read_res(sc, &res, pos);
|
sk_vpd_read_res(sc, &res, pos);
|
||||||
|
|
||||||
@ -1781,7 +1783,8 @@ skc_attach(dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Announce the product name and more VPD data if there. */
|
/* Announce the product name and more VPD data if there. */
|
||||||
device_printf(dev, "%s rev. %s(0x%x)\n", pname, revstr, sc->sk_rev);
|
device_printf(dev, "%s rev. %s(0x%x)\n",
|
||||||
|
pname != NULL ? pname : "<unknown>", revstr, sc->sk_rev);
|
||||||
|
|
||||||
if (bootverbose) {
|
if (bootverbose) {
|
||||||
if (sc->sk_vpd_readonly != NULL &&
|
if (sc->sk_vpd_readonly != NULL &&
|
||||||
|
@ -496,10 +496,12 @@ sk_vpd_read(sc)
|
|||||||
|
|
||||||
pos += sizeof(res);
|
pos += sizeof(res);
|
||||||
sc->sk_vpd_prodname = malloc(res.vr_len + 1, M_DEVBUF, M_NOWAIT);
|
sc->sk_vpd_prodname = malloc(res.vr_len + 1, M_DEVBUF, M_NOWAIT);
|
||||||
for (i = 0; i < res.vr_len; i++)
|
if (sc->sk_vpd_prodname != NULL) {
|
||||||
sc->sk_vpd_prodname[i] = sk_vpd_readbyte(sc, i + pos);
|
for (i = 0; i < res.vr_len; i++)
|
||||||
sc->sk_vpd_prodname[i] = '\0';
|
sc->sk_vpd_prodname[i] = sk_vpd_readbyte(sc, i + pos);
|
||||||
pos += i;
|
sc->sk_vpd_prodname[i] = '\0';
|
||||||
|
}
|
||||||
|
pos += res.vr_len;
|
||||||
|
|
||||||
sk_vpd_read_res(sc, &res, pos);
|
sk_vpd_read_res(sc, &res, pos);
|
||||||
|
|
||||||
@ -1781,7 +1783,8 @@ skc_attach(dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Announce the product name and more VPD data if there. */
|
/* Announce the product name and more VPD data if there. */
|
||||||
device_printf(dev, "%s rev. %s(0x%x)\n", pname, revstr, sc->sk_rev);
|
device_printf(dev, "%s rev. %s(0x%x)\n",
|
||||||
|
pname != NULL ? pname : "<unknown>", revstr, sc->sk_rev);
|
||||||
|
|
||||||
if (bootverbose) {
|
if (bootverbose) {
|
||||||
if (sc->sk_vpd_readonly != NULL &&
|
if (sc->sk_vpd_readonly != NULL &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user