432 Memory leak in smbd/libsmb smb_idmap_getsid
authorGordon Ross <Gordon.Ross@nexenta.com>
Wed, 08 Dec 2010 20:51:19 -0500
changeset 13254 65ac809db5a8
parent 13253 84e1c76098c5
child 13255 4afa820d78b9
432 Memory leak in smbd/libsmb smb_idmap_getsid Reviewed by: [email protected] Reviewed by: [email protected] Reviewed by: [email protected] Approved by: [email protected]
usr/src/lib/smbsrv/libsmb/common/smb_idmap.c
--- a/usr/src/lib/smbsrv/libsmb/common/smb_idmap.c	Tue Dec 07 18:02:05 2010 -0600
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_idmap.c	Wed Dec 08 20:51:19 2010 -0500
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #include <syslog.h>
@@ -174,8 +175,10 @@
 		 * SIDs are allocated only when mapping
 		 * UID/GID to SIDs
 		 */
-		for (i = 0; i < sib->sib_nmap; i++)
+		for (i = 0; i < sib->sib_nmap; i++) {
 			smb_sid_free(sib->sib_maps[i].sim_sid);
+			free(sib->sib_maps[i].sim_domsid);
+		}
 	}
 
 	if (sib->sib_size && sib->sib_maps) {
@@ -367,7 +370,6 @@
 			return (-1);
 
 		sid = smb_sid_fromstr(sim->sim_domsid);
-		free(sim->sim_domsid);
 		if (sid == NULL)
 			return (-1);