kdrive: avoid null dereferences
Avoid jumping into NULL pointers for OS or card functions which do not exist.
This commit is contained in:
parent
738d2e8817
commit
644ee2434a
|
@ -281,7 +281,7 @@ KdSuspend (void)
|
||||||
for (screen = card->screenList; screen; screen = screen->next)
|
for (screen = card->screenList; screen; screen = screen->next)
|
||||||
if (screen->mynum == card->selected && screen->pScreen)
|
if (screen->mynum == card->selected && screen->pScreen)
|
||||||
KdDisableScreen (screen->pScreen);
|
KdDisableScreen (screen->pScreen);
|
||||||
if (card->driver)
|
if (card->driver && card->cfuncs->restore)
|
||||||
(*card->cfuncs->restore) (card);
|
(*card->cfuncs->restore) (card);
|
||||||
}
|
}
|
||||||
KdDisableInput ();
|
KdDisableInput ();
|
||||||
|
@ -295,6 +295,7 @@ KdDisableScreens (void)
|
||||||
KdSuspend ();
|
KdSuspend ();
|
||||||
if (kdEnabled)
|
if (kdEnabled)
|
||||||
{
|
{
|
||||||
|
if (kdOsFuncs->Disable)
|
||||||
(*kdOsFuncs->Disable) ();
|
(*kdOsFuncs->Disable) ();
|
||||||
kdEnabled = FALSE;
|
kdEnabled = FALSE;
|
||||||
}
|
}
|
||||||
|
@ -353,6 +354,7 @@ KdEnableScreens (void)
|
||||||
if (!kdEnabled)
|
if (!kdEnabled)
|
||||||
{
|
{
|
||||||
kdEnabled = TRUE;
|
kdEnabled = TRUE;
|
||||||
|
if (kdOsFuncs->Enable)
|
||||||
(*kdOsFuncs->Enable) ();
|
(*kdOsFuncs->Enable) ();
|
||||||
}
|
}
|
||||||
KdResume ();
|
KdResume ();
|
||||||
|
@ -373,8 +375,9 @@ AbortDDX(void)
|
||||||
KdDisableScreens ();
|
KdDisableScreens ();
|
||||||
if (kdOsFuncs)
|
if (kdOsFuncs)
|
||||||
{
|
{
|
||||||
if (kdEnabled)
|
if (kdEnabled && kdOsFuncs->Disable)
|
||||||
(*kdOsFuncs->Disable) ();
|
(*kdOsFuncs->Disable) ();
|
||||||
|
if (kdOsFuncs->Fini)
|
||||||
(*kdOsFuncs->Fini) ();
|
(*kdOsFuncs->Fini) ();
|
||||||
KdDoSwitchCmd ("stop");
|
KdDoSwitchCmd ("stop");
|
||||||
}
|
}
|
||||||
|
@ -768,6 +771,7 @@ KdOsInit (KdOsFuncs *pOsFuncs)
|
||||||
if (serverGeneration == 1)
|
if (serverGeneration == 1)
|
||||||
{
|
{
|
||||||
KdDoSwitchCmd ("start");
|
KdDoSwitchCmd ("start");
|
||||||
|
if (pOsFuncs->Init)
|
||||||
(*pOsFuncs->Init) ();
|
(*pOsFuncs->Init) ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user