do not assume PrivateData != NULL on closing
This commit is contained in:
+16
-15
@@ -418,28 +418,29 @@ IOWarrior_close(Driver *drvthis)
|
|||||||
{
|
{
|
||||||
PrivateData *p = drvthis->private_data;
|
PrivateData *p = drvthis->private_data;
|
||||||
|
|
||||||
/* don't turn display off: keep the logoff message */
|
if (p != NULL) {
|
||||||
// iowlcd_display_on_off(p->udh,0,0,0);
|
/* don't turn display off: keep the logoff message */
|
||||||
|
// iowlcd_display_on_off(p->udh,0,0,0);
|
||||||
|
|
||||||
/* IOW leave LCD mode */
|
/* IOW leave LCD mode */
|
||||||
iowlcd_disable(p->udh);
|
iowlcd_disable(p->udh);
|
||||||
|
|
||||||
/* release interface 1 */
|
/* release interface 1 */
|
||||||
usb_release_interface(p->udh, 1);
|
usb_release_interface(p->udh, 1);
|
||||||
|
|
||||||
/* close USB */
|
/* close USB */
|
||||||
usb_close(p->udh);
|
usb_close(p->udh);
|
||||||
|
|
||||||
if (p->framebuf != NULL)
|
if (p->framebuf != NULL)
|
||||||
free(p->framebuf);
|
free(p->framebuf);
|
||||||
p->framebuf = NULL;
|
p->framebuf = NULL;
|
||||||
|
|
||||||
if (p->backingstore != NULL)
|
if (p->backingstore != NULL)
|
||||||
free(p->backingstore);
|
free(p->backingstore);
|
||||||
p->backingstore = NULL;
|
p->backingstore = NULL;
|
||||||
|
|
||||||
if (p != NULL)
|
|
||||||
free(p);
|
free(p);
|
||||||
|
}
|
||||||
drvthis->store_private_ptr(drvthis, NULL);
|
drvthis->store_private_ptr(drvthis, NULL);
|
||||||
|
|
||||||
debug(RPT_DEBUG, "IOWarrior: closed");
|
debug(RPT_DEBUG, "IOWarrior: closed");
|
||||||
|
|||||||
Reference in New Issue
Block a user