Module Name:    src
Committed By:   christos
Date:           Wed Nov 27 18:11:00 UTC 2013

Modified Files:
        src/external/bsd/nvi/dist/ex: ex_cscope.c

Log Message:
CID 1132769: Fix memory leak


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/bsd/nvi/dist/ex/ex_cscope.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/nvi/dist/ex/ex_cscope.c
diff -u src/external/bsd/nvi/dist/ex/ex_cscope.c:1.3 src/external/bsd/nvi/dist/ex/ex_cscope.c:1.4
--- src/external/bsd/nvi/dist/ex/ex_cscope.c:1.3	Mon Nov 25 17:43:46 2013
+++ src/external/bsd/nvi/dist/ex/ex_cscope.c	Wed Nov 27 13:11:00 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: ex_cscope.c,v 1.3 2013/11/25 22:43:46 christos Exp $ */
+/*	$NetBSD: ex_cscope.c,v 1.4 2013/11/27 18:11:00 christos Exp $ */
 /*-
  * Copyright (c) 1994, 1996
  *	Rob Mayoff.  All rights reserved.
@@ -503,14 +503,14 @@ cscope_find(SCR *sp, EXCMD *cmdp, const 
 
 		/* Read the output. */
 		if (parse(sp, csc, tqp, &matches)) {
-			if (rtqp != NULL)
-				free(rtqp);
+			free(rtqp);
 			tagq_free(sp, tqp);
 			return (1);
 		}
 	}
 
 	if (matches == 0) {
+		free(rtqp);
 		msgq(sp, M_INFO, "278|No matches for query");
 		return (0);
 	}
@@ -537,8 +537,10 @@ cscope_find(SCR *sp, EXCMD *cmdp, const 
 	 */
 	if (TAILQ_EMPTY(&exp->tq)) {
 		TAILQ_INSERT_HEAD(&exp->tq, rtqp, q);
-	} else
+	} else {
+		free(rtqp);
 		rtqp = TAILQ_FIRST(&exp->tq);
+	}
 
 	/* Link the current TAGQ structure into place. */
 	TAILQ_INSERT_HEAD(&exp->tq, tqp, q);
@@ -568,12 +570,9 @@ cscope_find(SCR *sp, EXCMD *cmdp, const 
 
 err:
 alloc_err:
-	if (rtqp != NULL)
-		free(rtqp);
-	if (rtp != NULL)
-		free(rtp);
-	if (np != NULL)
-		free(__UNCONST(np));
+	free(rtqp);
+	free(rtp);
+	free(__UNCONST(np));
 	return (1);
 }
 

Reply via email to