Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/rpc PR/51578: Henning Petersen: Fix leak on error.



details:   https://anonhg.NetBSD.org/src/rev/cdfcfd296b10
branches:  trunk
changeset: 348566:cdfcfd296b10
user:      christos <christos%NetBSD.org@localhost>
date:      Wed Oct 26 15:39:30 2016 +0000

description:
PR/51578: Henning Petersen: Fix leak on error.

diffstat:

 lib/libc/rpc/getnetconfig.c |  9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diffs (41 lines):

diff -r 03c11b2f306f -r cdfcfd296b10 lib/libc/rpc/getnetconfig.c
--- a/lib/libc/rpc/getnetconfig.c       Wed Oct 26 15:36:17 2016 +0000
+++ b/lib/libc/rpc/getnetconfig.c       Wed Oct 26 15:39:30 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: getnetconfig.c,v 1.23 2016/10/26 15:36:17 christos Exp $       */
+/*     $NetBSD: getnetconfig.c,v 1.24 2016/10/26 15:39:30 christos Exp $       */
 
 /*
  * Copyright (c) 2010, Oracle America, Inc.
@@ -36,7 +36,7 @@
 #if 0
 static        char sccsid[] = "@(#)getnetconfig.c      1.12 91/12/19 SMI";
 #else
-__RCSID("$NetBSD: getnetconfig.c,v 1.23 2016/10/26 15:36:17 christos Exp $");
+__RCSID("$NetBSD: getnetconfig.c,v 1.24 2016/10/26 15:39:30 christos Exp $");
 #endif
 #endif
 
@@ -649,12 +649,12 @@
 dup_ncp(struct netconfig *ncp)
 {
        struct netconfig        *p;
-       char    *tmp;
+       char    *tmp, *tmp2;
        u_int   i;
 
        _DIAGASSERT(ncp != NULL);
 
-       if ((tmp = malloc(MAXNETCONFIGLINE)) == NULL)
+       if ((tmp2 = tmp = malloc(MAXNETCONFIGLINE)) == NULL)
                return NULL;
        if ((p = malloc(sizeof(*p))) == NULL) {
                free(tmp);
@@ -679,6 +679,7 @@
        p->nc_device = strcpy(tmp, ncp->nc_device);
        p->nc_lookups = calloc((size_t)(p->nc_nlookups + 1), sizeof(char *));
        if (p->nc_lookups == NULL) {
+               free(tmp2);
                free(p->nc_netid);
                free(p);
                return NULL;



Home | Main Index | Thread Index | Old Index