From: Nick Bowler Date: Thu, 10 Feb 2022 01:37:50 +0000 (-0500) Subject: Plug memory leak in declgen. X-Git-Tag: v1.2~6 X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/commitdiff_plain/8ba5dbed14fc225893f8ad4b935e0e4b9f77db78 Plug memory leak in declgen. When a void typespec is generated in a context where it is invalid, gen_typespecs just rolls the dice again. Unfortunately, the typespec is not freed in this case, leaking memory. Easily fixed. --- diff --git a/test/declgen.c b/test/declgen.c index 221c71a..0e76348 100644 --- a/test/declgen.c +++ b/test/declgen.c @@ -183,8 +183,11 @@ retry: switch (specs->type) { /* void is not always valid, so we might need to pick again. */ case CDECL_TYPE_VOID: - if (!voidtype) + if (!voidtype) { + assert(!specs->next); + free(specs); goto retry; + } break; /* A few kinds of type specifiers need identifiers to go with them. */ case CDECL_TYPE_STRUCT: