-
Type:
Bug
-
Status: Accepted
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 73 : 31 Oct
-
Labels:
I am working on fixing some memory leaks. One of them is:
==17706== 60 bytes in 3 blocks are definitely lost in loss record 5 of 15
==17706== at 0x4022AB8: malloc (vg_replace_malloc.c:207)
==17706== by 0x43FA67F: strdup (strdup.c:43)
==17706== by 0x805B804: StrStrdup (string_util.c:131)
==17706== by 0x805234C: DtParseDateTimeString (datetime.c:632)
==17706== by 0x804B9A1: do_purge (enforcer.c:1434)
==17706== by 0x804E65B: server_main (enforcer.c:225)
==17706== by 0x804F072: main (daemon.c:242)
It should also free the rightnow variable when there is no keys to purge. When status == 0, right?
http://trac.opendnssec.org/browser/trunk/OpenDNSSEC/enforcer/enforcerd/enforcer.c#L1457
But when reading the code, I see a potential problem. Won't the current free:
http://trac.opendnssec.org/browser/trunk/OpenDNSSEC/enforcer/enforcerd/enforcer.c#L1473
break the system if it loops a second time?
http://trac.opendnssec.org/browser/trunk/OpenDNSSEC/enforcer/enforcerd/enforcer.c#L1468
http://trac.opendnssec.org/browser/trunk/OpenDNSSEC/enforcer/enforcerd/enforcer.c#L1471
Since the variable is used for every loop