From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (schwarze@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.5/8.14.5) with ESMTP id s47FAaWw020010 for ; Wed, 7 May 2014 11:10:36 -0400 (EDT) Received: (from schwarze@localhost) by krisdoz.my.domain (8.14.5/8.14.3/Submit) id s47FAaVX028776; Wed, 7 May 2014 11:10:36 -0400 (EDT) Date: Wed, 7 May 2014 11:10:36 -0400 (EDT) Message-Id: <201405071510.s47FAaVX028776@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Fix two memory leaks in makewhatis -n: 1. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Fix two memory leaks in makewhatis -n: 1. As found by nigel@, names_check() requires database access. 2. Do not leak names and strings in -n mode. Modified Files: -------------- mdocml: mandocdb.c Revision Data ------------- Index: mandocdb.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandocdb.c,v retrieving revision 1.146 retrieving revision 1.147 diff -Lmandocdb.c -Lmandocdb.c -u -p -r1.146 -r1.147 --- mandocdb.c +++ mandocdb.c @@ -512,7 +512,7 @@ main(int argc, char *argv[]) goto out; mpages_merge(mc, mp); - if (warnings && + if (warnings && !nodb && ! (MPARSE_QUICK & mparse_options)) names_check(); dbclose(0); @@ -1996,6 +1996,18 @@ dbadd(struct mpage *mpage, struct mchars mlink = mpage->mlinks; if (nodb) { + for (key = ohash_first(&names, &slot); NULL != key; + key = ohash_next(&names, &slot)) { + if (key->rendered != key->key) + free(key->rendered); + free(key); + } + for (key = ohash_first(&strings, &slot); NULL != key; + key = ohash_next(&strings, &slot)) { + if (key->rendered != key->key) + free(key->rendered); + free(key); + } if (0 == debug) return; while (NULL != mlink) { -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv