Mercurial > illumos > illumos-gate
changeset 13033:0cbad7fa62eb
6893022 if_freenameindex crashes or leaks memory
author | Renee Danson Sommerfeld <Renee.Sommerfeld@Oracle.COM> |
---|---|
date | Thu, 05 Aug 2010 10:33:46 -0700 |
parents | 1b6086d6d5a1 |
children | 03fd5152c466 |
files | usr/src/lib/libsocket/inet/interface_id.c |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/lib/libsocket/inet/interface_id.c Thu Aug 05 11:14:15 2010 -0600 +++ b/usr/src/lib/libsocket/inet/interface_id.c Thu Aug 05 10:33:46 2010 -0700 @@ -18,9 +18,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. */ #include <stdio.h> @@ -351,16 +351,14 @@ void if_freenameindex(struct if_nameindex *ptr) { + struct if_nameindex *p; if (ptr == NULL) return; - /* First free the if_name member in each array element */ - while (ptr->if_name != NULL) { - free(ptr->if_name); - ptr++; - } + for (p = ptr; p->if_name != NULL; p++) + free(p->if_name); /* Now free up the array space */ free(ptr);