diff --git a/extflat/EFdef.c b/extflat/EFdef.c index 358c6b0d..8744ae49 100644 --- a/extflat/EFdef.c +++ b/extflat/EFdef.c @@ -162,6 +162,12 @@ EFDone() } HashKill(&efDevParamTable); + HashStartSearch(&hs); + while (he = HashNext(&efFreeHashTable, &hs)) + { + /* Keys of this table are entries to be free'd */ + freeMagic(he->h_key.h_ptr); + } HashKill(&efFreeHashTable); /* Final cleanup */ diff --git a/extract/ExtTech.c b/extract/ExtTech.c index 3225bf8d..68bb324b 100644 --- a/extract/ExtTech.c +++ b/extract/ExtTech.c @@ -351,8 +351,16 @@ ExtGetDevInfo(idx, devnameptr, devtypeptr, s_rclassptr, d_rclassptr, } if (found == TRUE) break; } - if (t == DBNumTypes) return FALSE; - if (devptr == NULL) return FALSE; + if (t == DBNumTypes) + { + freeMagic(uniquenamelist); + return FALSE; + } + if (devptr == NULL) + { + freeMagic(uniquenamelist); + return FALSE; + } if (devnameptr) *devnameptr = locdname; if (subnameptr) *subnameptr = devptr->exts_deviceSubstrateName;