pajoye Wed, 27 Jan 2010 14:41:06 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=294094
Log:
- fix leak when the SID is already used and duplicated
Changed paths:
U php/php-src/branches/PHP_5_3/TSRM/tsrm_win32.c
U php/php-src/trunk/TSRM/tsrm_win32.c
Modified: php/php-src/branches/PHP_5_3/TSRM/tsrm_win32.c
===================================================================
--- php/php-src/branches/PHP_5_3/TSRM/tsrm_win32.c 2010-01-27 14:38:35 UTC
(rev 294093)
+++ php/php-src/branches/PHP_5_3/TSRM/tsrm_win32.c 2010-01-27 14:41:06 UTC
(rev 294094)
@@ -170,6 +170,7 @@
/* ConvertSidToStringSid(pTokenUser->User.Sid, &ptcSidOwner); */
pResultSid = malloc(sid_len);
+
if (!pResultSid) {
goto Finished;
}
@@ -271,6 +272,9 @@
if (!DuplicateToken(thread_token,
SecurityImpersonation, &TWG(impersonation_token))) {
goto Finished;
}
+ } else {
+ /* we already have it, free it then */
+ free(token_sid);
}
if (CWDG(realpath_cache_size_limit)) {
Modified: php/php-src/trunk/TSRM/tsrm_win32.c
===================================================================
--- php/php-src/trunk/TSRM/tsrm_win32.c 2010-01-27 14:38:35 UTC (rev 294093)
+++ php/php-src/trunk/TSRM/tsrm_win32.c 2010-01-27 14:41:06 UTC (rev 294094)
@@ -271,6 +271,9 @@
if (!DuplicateToken(thread_token,
SecurityImpersonation, &TWG(impersonation_token))) {
goto Finished;
}
+ } else {
+ /* we already have it, free it then */
+ free(token_sid);
}
if (CWDG(realpath_cache_size_limit)) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php