Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Do not free items in reference entries.
Vsevolod Stakhov committed 12 years ago
commit d17e090fd6fd09561e84c804258e957436c883f8
parent c11a0a3
1 file changed +24 -22
modified src/audit.c
@@ -724,31 +724,33 @@ free_audit_list(struct audit_entry *h)
	while (h) {
		e = h;
		h = h->next;
-
		LL_FOREACH_SAFE(e->versions, vers, vers_tmp) {
-
			if (vers->v1.version) {
-
				free(vers->v1.version);
+
		if (!e->ref) {
+
			LL_FOREACH_SAFE(e->versions, vers, vers_tmp) {
+
				if (vers->v1.version) {
+
					free(vers->v1.version);
+
				}
+
				if (vers->v2.version) {
+
					free(vers->v2.version);
+
				}
+
				free(vers);
			}
-
			if (vers->v2.version) {
-
				free(vers->v2.version);
+
			LL_FOREACH_SAFE(e->cve, cve, cve_tmp) {
+
				if (cve->cvename)
+
					free(cve->cvename);
+
				free(cve);
			}
-
			free(vers);
-
		}
-
		LL_FOREACH_SAFE(e->cve, cve, cve_tmp) {
-
			if (cve->cvename)
-
				free(cve->cvename);
-
			free(cve);
-
		}
-
		LL_FOREACH_SAFE(e->names, pname, pname_tmp) {
-
			if (pname->pkgname)
-
				free(pname->pkgname);
-
			free(pname);
+
			LL_FOREACH_SAFE(e->names, pname, pname_tmp) {
+
				if (pname->pkgname)
+
					free(pname->pkgname);
+
				free(pname);
+
			}
+
			if (e->url)
+
				free(e->url);
+
			if (e->desc)
+
				free(e->desc);
+
			if (e->id)
+
				free(e->id);
		}
-
		if (e->url)
-
			free(e->url);
-
		if (e->desc)
-
			free(e->desc);
-
		if (e->id)
-
			free(e->id);
		free(e);
	}
}