diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c index 0ce43bf..05c04bb 100644 --- a/scan/sane/sclpml.c +++ b/scan/sane/sclpml.c @@ -2071,6 +2071,10 @@ abort: { free( ( void * ) session->saneDevice.model ); } + if (session->mfpdtf) + { + MfpdtfDeallocate(session->mfpdtf); + } free( session ); session = NULL; } @@ -2100,6 +2104,19 @@ void sclpml_close(SANE_Handle handle) hpmud_close_device(hpaio->deviceid); hpaio->deviceid = -1; } + + if(hpaio->saneDevice.name) + { + free( ( void * ) hpaio->saneDevice.name ); + } + if(hpaio->saneDevice.model) + { + free( ( void * ) hpaio->saneDevice.model ); + } + if (hpaio->mfpdtf) + { + MfpdtfDeallocate(hpaio->mfpdtf); + } free(hpaio); session = NULL; }