mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
- #27051, create process as impersonated user
This commit is contained in:
parent
ad2bb4bcb1
commit
ddab8be51e
4
NEWS
4
NEWS
@ -176,7 +176,9 @@ PHP NEWS
|
||||
com, Kalle)
|
||||
- Fixed bug #38091 (Mail() does not use FQDN when sending SMTP helo).
|
||||
(Kalle, Rick Yorgason)
|
||||
- Fixed bug #28038 (Sent incorrect RCPT TO commands to SMTP server) (Garrett)
|
||||
- Fixed bug #28038 (Sent incorrect RCPT TO commands to SMTP server) (Garrett)
|
||||
- Fixed bug #27051 (Impersonation with FastCGI does not exec process as
|
||||
impersonated user). (Pierre)
|
||||
|
||||
30 Jun 2009, PHP 5.3.0
|
||||
- Upgraded bundled PCRE to version 7.9. (Nuno)
|
||||
|
@ -311,6 +311,7 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
|
||||
SECURITY_ATTRIBUTES security;
|
||||
HANDLE in, out;
|
||||
DWORD dwCreateFlags = 0;
|
||||
BOOL res;
|
||||
process_pair *proc;
|
||||
char *cmd;
|
||||
int i;
|
||||
@ -370,12 +371,17 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
|
||||
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c ")+2);
|
||||
sprintf(cmd, "%s /c \"%s\"", TWG(comspec), command);
|
||||
|
||||
if (!CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process)) {
|
||||
free(cmd);
|
||||
return NULL;
|
||||
if(TWG(impersonation_token) == NULL) {
|
||||
res = CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process);
|
||||
} else {
|
||||
res = CreateProcessAsUser(TWG(impersonation_token), NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process);
|
||||
}
|
||||
free(cmd);
|
||||
|
||||
if (!res) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CloseHandle(process.hThread);
|
||||
proc = process_get(NULL TSRMLS_CC);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user