From: Andreas Eversberg Date: Sat, 7 Jan 2012 08:34:51 +0000 (+0100) Subject: Fixed NULL-pointer bug when unloading of GSM interfaces X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=commitdiff_plain;h=29ba196ca5cc26f5b61e8c4e405f883040b30bf9 Fixed NULL-pointer bug when unloading of GSM interfaces --- diff --git a/interface.c b/interface.c index 57d7fe8..ee753a9 100644 --- a/interface.c +++ b/interface.c @@ -1489,6 +1489,17 @@ void relink_interfaces(void) /* unlink all mISDNports */ mISDNport = mISDNport_first; while(mISDNport) { + if (mISDNport->ifport) { + ifport = mISDNport->ifport; +#ifdef WITH_GSM_MS + if (ifport->gsm_ms) + gsm_ms_delete(ifport->gsm_ms_name); +#endif +#ifdef WITH_GSM_BS + if (ifport->gsm_bs) + gsm_bs_exit(0); +#endif + } mISDNport->ifport = NULL; mISDNport = mISDNport->next; } @@ -1521,15 +1532,7 @@ void relink_interfaces(void) while(mISDNport) { if (mISDNport->ifport == NULL) { PDEBUG(DEBUG_ISDN, "Port %d is not used anymore and will be closed\n", mISDNport->portnum); - /* remove all port objects and destroy port */ -#ifdef WITH_GSM_MS - if (ifport->gsm_ms) - gsm_ms_delete(ifport->gsm_ms_name); -#endif -#ifdef WITH_GSM_BS - if (ifport->gsm_bs) - gsm_bs_exit(0); -#endif + /* destroy port */ mISDNport_close(mISDNport); goto closeagain; }