@@ -48,44 +48,31 @@ BOOL GetProcessSid(HANDLE hProc, PSID *pSid) {
48
48
SIZE_T szSid = 0 ;
49
49
50
50
* pSid = NULL ;
51
- do {
52
- if (!OpenProcessToken (hProc , (TOKEN_READ ), & hToken )) {
53
- return FALSE;
54
- }
55
-
56
- GetTokenInformation (hToken , TokenUser , NULL , 0 , & dwLength );
57
- tuUser = (TOKEN_USER * )malloc (dwLength );
58
- if (tuUser == NULL ) {
59
- break ;
60
- }
61
-
62
- if (!GetTokenInformation (hToken , TokenUser , tuUser , dwLength , & dwLength )) {
63
- break ;
64
- }
65
-
66
- szSid = GetLengthSid (tuUser -> User .Sid );
67
- * pSid = LocalAlloc (LPTR , szSid );
68
- if (* pSid == NULL ) {
69
- break ;
70
- }
51
+ if (!OpenProcessToken (hProc , (TOKEN_READ ), & hToken )) {
52
+ return FALSE;
53
+ }
71
54
72
- if (! CopySid (( DWORD ) szSid , * pSid , tuUser -> User . Sid )) {
73
- LocalFree ( * pSid );
74
- * pSid = NULL ;
75
- }
76
- } while (FALSE);
55
+ GetTokenInformation ( hToken , TokenUser , NULL , 0 , & dwLength );
56
+ tuUser = ( TOKEN_USER * ) malloc ( dwLength );
57
+ if (! tuUser ) {
58
+ return FALSE;
59
+ }
77
60
78
- if (tuUser != NULL ) {
61
+ if (! GetTokenInformation ( hToken , TokenUser , tuUser , dwLength , & dwLength ) ) {
79
62
free (tuUser );
80
- }
81
- if (hToken ) {
82
- CloseHandle (hToken );
63
+ return FALSE;
83
64
}
84
65
85
- if (* pSid != NULL ) {
86
- return TRUE;
66
+ szSid = GetLengthSid (tuUser -> User .Sid );
67
+ * pSid = LocalAlloc (LPTR , szSid );
68
+ if ((* pSid ) && (!CopySid ((DWORD )szSid , * pSid , tuUser -> User .Sid ))) {
69
+ LocalFree (* pSid );
70
+ * pSid = NULL ;
87
71
}
88
- return FALSE;
72
+
73
+ free (tuUser );
74
+ CloseHandle (hToken );
75
+ return * pSid != NULL ;
89
76
}
90
77
91
78
BOOL IsProcessRunningAsSidString (HANDLE hProc , LPCTSTR sStringSid , PBOOL pbResult ) {
0 commit comments