Module Name: src Committed By: christos Date: Thu Jan 7 19:49:25 UTC 2016
Modified Files: src/external/bsd/mdocml/dist: read.c Log Message: CID 1288947: Prevent fd leak. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/external/bsd/mdocml/dist/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/mdocml/dist/read.c diff -u src/external/bsd/mdocml/dist/read.c:1.12 src/external/bsd/mdocml/dist/read.c:1.13 --- src/external/bsd/mdocml/dist/read.c:1.12 Fri Dec 18 09:30:41 2015 +++ src/external/bsd/mdocml/dist/read.c Thu Jan 7 14:49:25 2016 @@ -1,4 +1,4 @@ -/* $Id: read.c,v 1.12 2015/12/18 14:30:41 christos Exp $ */ +/* $Id: read.c,v 1.13 2016/01/07 19:49:25 christos Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <krist...@bsd.lv> * Copyright (c) 2010-2015 Ingo Schwarze <schwa...@openbsd.org> @@ -336,6 +336,7 @@ mparse_buf_r(struct mparse *curp, const lnn = curp->line; pos = 0; + fd = -1; while (i < blk.sz) { if (0 == pos && '\0' == blk.buf[i]) @@ -530,8 +531,7 @@ rerun: if ( ! (curp->options & MPARSE_SO) && (i >= blk.sz || blk.buf[i] == '\0')) { curp->sodest = mandoc_strdup(ln.buf + of); - free(ln.buf); - return; + goto out; } /* * We remove `so' clauses from our lookaside @@ -611,7 +611,10 @@ rerun: pos = 0; } +out: free(ln.buf); + if (fd != -1) + close(fd); } static int