From 840f60ffded03121ba4ea407e7bef5e89cd3b9bd Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 14 Dec 2025 21:24:52 +0100 Subject: c: fix memory leak if initializer data if error --- c/c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c/c.c b/c/c.c index d96ea5c..49b17b2 100644 --- a/c/c.c +++ b/c/c.c @@ -1775,11 +1775,11 @@ initializer(struct comp *cm, union type *ty, enum evalmode ev, bool globl, p = sec == Srodata ? objout.rodata.p : objout.data.p; memcpy(p + off, ip->ddat.p, ip->ddat.n); memset(p + off + ip->ddat.n, 0, typesize(*ty) - ip->ddat.n); - vfree(&ip->ddat); for (struct dreloc *rel = ip->drel; rel; rel = rel->link) { objreloc(rel->sym, targ_64bit ? REL_ABS64 : REL_ABS32, sec, off + rel->off, rel->addend); } } + vfree(&ip->ddat); } dumpini(ip); -- cgit v1.2.3