# HG changeset patch # User Gordon Ross # Date 1291859479 18000 # Node ID 65ac809db5a878e903845d9cf77540a70f953805 # Parent 84e1c76098c58c5454c70abcd3bc4837aed79cd2 432 Memory leak in smbd/libsmb smb_idmap_getsid Reviewed by: garrett@nexenta.com Reviewed by: josh@sysmgr.org Reviewed by: trisk@nexenta.com Approved by: garrett@nexenta.com diff -r 84e1c76098c5 -r 65ac809db5a8 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 @@ -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);