File tree 1 file changed +16
-8
lines changed
1 file changed +16
-8
lines changed Original file line number Diff line number Diff line change @@ -1715,21 +1715,29 @@ XS(XS_NT__NetAdmin_LocalGroupIsMember)
1715
1715
AllocWideName ((char * )SvPV (ST (1 ),n_a ), lpwGroup );
1716
1716
do {
1717
1717
PLOCALGROUP_MEMBERS_INFO_0 pwzMembersInfo ;
1718
+ pwzMembersInfo = NULL ;
1718
1719
lastError = NetLocalGroupGetMembers (lpwServer , lpwGroup , 0 ,
1719
1720
(LPBYTE * )& pwzMembersInfo ,
1720
1721
PREFLEN , & entriesRead ,
1721
1722
& totalEntries , & resumeHandle );
1722
- if (lastError != 0 && lastError != ERROR_MORE_DATA )
1723
+ if (lastError != 0 && lastError != ERROR_MORE_DATA ) {
1724
+ if (pwzMembersInfo != NULL ) {
1725
+ NetApiBufferFree (pwzMembersInfo );
1726
+ }
1723
1727
break ;
1724
- for (index = 0 ; index < entriesRead ; ++ index )
1725
- if (EqualSid (pSid , pwzMembersInfo [index ].lgrmi0_sid ) != 0 ){
1726
- bReturn = TRUE;
1727
- break ;
1728
- }
1728
+ }
1729
+
1730
+ if (bReturn == FALSE) {
1731
+ for (index = 0 ; index < entriesRead ; ++ index ) {
1732
+ if (EqualSid (pSid , pwzMembersInfo [index ].lgrmi0_sid ) != 0 ){
1733
+ bReturn = TRUE;
1734
+ break ;
1735
+ }
1736
+ }
1737
+ }
1729
1738
1730
1739
NetApiBufferFree (pwzMembersInfo );
1731
- } while (bReturn == FALSE &&
1732
- (lastError == ERROR_MORE_DATA || resumeHandle != 0 ));
1740
+ } while (lastError == ERROR_MORE_DATA || resumeHandle != 0 );
1733
1741
1734
1742
free (pSid );
1735
1743
FreeWideName (lpwServer );
You can’t perform that action at this time.
0 commit comments