Deal with failed malloc calls[1].
While there also check for failed device_add_child calls. Found by: Coventry Analysis tool[1]. Submitted by: sam[1] Approved by: pjd (mentor) MFC after: 1 week
This commit is contained in:
parent
1b301a7fa5
commit
261a19c1ee
@ -1821,13 +1821,35 @@ skc_attach(dev)
|
||||
}
|
||||
|
||||
sc->sk_devs[SK_PORT_A] = device_add_child(dev, "sk", -1);
|
||||
if (sc->sk_devs[SK_PORT_A] == NULL) {
|
||||
device_printf(dev, "failed to add child for PORT_A\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
|
||||
if (port == NULL) {
|
||||
device_printf(dev, "failed to allocate memory for "
|
||||
"ivars of PORT_A\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
*port = SK_PORT_A;
|
||||
device_set_ivars(sc->sk_devs[SK_PORT_A], port);
|
||||
|
||||
if (!(sk_win_read_1(sc, SK_CONFIG) & SK_CONFIG_SINGLEMAC)) {
|
||||
sc->sk_devs[SK_PORT_B] = device_add_child(dev, "sk", -1);
|
||||
if (sc->sk_devs[SK_PORT_B] == NULL) {
|
||||
device_printf(dev, "failed to add child for PORT_B\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
|
||||
if (port == NULL) {
|
||||
device_printf(dev, "failed to allocate memory for "
|
||||
"ivars of PORT_B\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
*port = SK_PORT_B;
|
||||
device_set_ivars(sc->sk_devs[SK_PORT_B], port);
|
||||
}
|
||||
|
@ -1821,13 +1821,35 @@ skc_attach(dev)
|
||||
}
|
||||
|
||||
sc->sk_devs[SK_PORT_A] = device_add_child(dev, "sk", -1);
|
||||
if (sc->sk_devs[SK_PORT_A] == NULL) {
|
||||
device_printf(dev, "failed to add child for PORT_A\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
|
||||
if (port == NULL) {
|
||||
device_printf(dev, "failed to allocate memory for "
|
||||
"ivars of PORT_A\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
*port = SK_PORT_A;
|
||||
device_set_ivars(sc->sk_devs[SK_PORT_A], port);
|
||||
|
||||
if (!(sk_win_read_1(sc, SK_CONFIG) & SK_CONFIG_SINGLEMAC)) {
|
||||
sc->sk_devs[SK_PORT_B] = device_add_child(dev, "sk", -1);
|
||||
if (sc->sk_devs[SK_PORT_B] == NULL) {
|
||||
device_printf(dev, "failed to add child for PORT_B\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
port = malloc(sizeof(int), M_DEVBUF, M_NOWAIT);
|
||||
if (port == NULL) {
|
||||
device_printf(dev, "failed to allocate memory for "
|
||||
"ivars of PORT_B\n");
|
||||
error = ENXIO;
|
||||
goto fail;
|
||||
}
|
||||
*port = SK_PORT_B;
|
||||
device_set_ivars(sc->sk_devs[SK_PORT_B], port);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user