summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall/media.c
diff options
context:
space:
mode:
authordd <dd@FreeBSD.org>2001-07-02 00:18:04 +0000
committerdd <dd@FreeBSD.org>2001-07-02 00:18:04 +0000
commit4a798fb83a60241d607536db8b69d9709995a803 (patch)
treeeb3e6d3ae80fce772bbe283df44e815263d1b83f /usr.sbin/sysinstall/media.c
parentb1763d41ddf8b57a46b69e3e8423b9d57392bd6a (diff)
downloadFreeBSD-src-4a798fb83a60241d607536db8b69d9709995a803.zip
FreeBSD-src-4a798fb83a60241d607536db8b69d9709995a803.tar.gz
Introduce DEVICE_INIT, DEVICE_GET, and DEVICE_SHUTDOWN macros. As the
names suggest, they perform methods on Device's. In addition, they check that the pointer passed to them is valid; if it isn't, they pretend that the action failed. This fixes some crashes due to NULL dereferences (e.g., PR 26509). Approved by: jkh (some time ago)
Diffstat (limited to 'usr.sbin/sysinstall/media.c')
-rw-r--r--usr.sbin/sysinstall/media.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/usr.sbin/sysinstall/media.c b/usr.sbin/sysinstall/media.c
index 5e4925f..b2eb519 100644
--- a/usr.sbin/sysinstall/media.c
+++ b/usr.sbin/sysinstall/media.c
@@ -125,7 +125,7 @@ void
mediaClose(void)
{
if (mediaDevice)
- mediaDevice->shutdown(mediaDevice);
+ DEVICE_SHUTDOWN(mediaDevice);
mediaDevice = NULL;
}
@@ -361,13 +361,13 @@ mediaSetFTP(dialogMenuItem *self)
if (!networkDev || msgYesNo("You've already done the network configuration once,\n"
"would you like to skip over it now?") != 0) {
if (networkDev)
- networkDev->shutdown(networkDev);
+ DEVICE_SHUTDOWN(networkDev);
if (!(networkDev = tcpDeviceSelect())) {
variable_unset(VAR_FTP_PATH);
return DITEM_FAILURE;
}
}
- if (!networkDev->init(networkDev)) {
+ if (!DEVICE_INIT(networkDev)) {
if (isDebug())
msgDebug("mediaSetFTP: Net device init failed.\n");
variable_unset(VAR_FTP_PATH);
@@ -415,7 +415,7 @@ mediaSetFTP(dialogMenuItem *self)
" your\nname server, gateway and network interface are"
" correctly configured?", hostname);
if (networkDev)
- networkDev->shutdown(networkDev);
+ DEVICE_SHUTDOWN(networkDev);
networkDev = NULL;
variable_unset(VAR_FTP_PATH);
return DITEM_FAILURE;
@@ -558,11 +558,11 @@ mediaSetNFS(dialogMenuItem *self)
if (!networkDev || msgYesNo("You've already done the network configuration once,\n"
"would you like to skip over it now?") != 0) {
if (networkDev)
- networkDev->shutdown(networkDev);
+ DEVICE_SHUTDOWN(networkDev);
if (!(networkDev = tcpDeviceSelect()))
return DITEM_FAILURE;
}
- if (!networkDev->init(networkDev)) {
+ if (!DEVICE_INIT(networkDev)) {
if (isDebug())
msgDebug("mediaSetNFS: Net device init failed\n");
}
@@ -572,7 +572,7 @@ mediaSetNFS(dialogMenuItem *self)
msgConfirm("Cannot resolve hostname `%s'! Are you sure that your\n"
"name server, gateway and network interface are correctly configured?", hostname);
if (networkDev)
- networkDev->shutdown(networkDev);
+ DEVICE_SHUTDOWN(networkDev);
networkDev = NULL;
variable_unset(VAR_NFS_PATH);
return DITEM_FAILURE;
OpenPOWER on IntegriCloud