Module Name: src Committed By: christos Date: Sat Oct 23 23:27:41 UTC 2010
Modified Files: src/lib/libedit: vi.c Log Message: fix fd leak found by Igor Zinovik To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/lib/libedit/vi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libedit/vi.c diff -u src/lib/libedit/vi.c:1.31 src/lib/libedit/vi.c:1.32 --- src/lib/libedit/vi.c:1.31 Wed Dec 30 17:37:40 2009 +++ src/lib/libedit/vi.c Sat Oct 23 19:27:40 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vi.c,v 1.31 2009/12/30 22:37:40 christos Exp $ */ +/* $NetBSD: vi.c,v 1.32 2010/10/23 23:27:40 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -42,7 +42,7 @@ #if 0 static char sccsid[] = "@(#)vi.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: vi.c,v 1.31 2009/12/30 22:37:40 christos Exp $"); +__RCSID("$NetBSD: vi.c,v 1.32 2010/10/23 23:27:40 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -1020,8 +1020,11 @@ len = (size_t)(el->el_line.lastchar - el->el_line.buffer); #define TMP_BUFSIZ (EL_BUFSIZ * MB_LEN_MAX) cp = el_malloc(TMP_BUFSIZ); - if (cp == NULL) + if (cp == NULL) { + unlink(tempfile); + close(fd); return CC_ERROR; + } line = el_malloc(len * sizeof(*line)); if (line == NULL) { el_free((ptr_t)cp);