GetTokenInformation() and FreeSid() at port/exec.c

TAKATSUKA Haruka <harukat@sraoss.co.jp>

From: TAKATSUKA Haruka <harukat@sraoss.co.jp>
To: pgsql-bugs@postgresql.org
Date: 2009-06-23T01:36:39Z
Lists: pgsql-bugs
Hi.

We found the unbalance of xxAlloc and xxFree at AddUserToDacl() in
src/port/exec.c (of current HEAD code).

psidUser is a pointer of the element of a TOKEN_USER structure
allocated by  HeapAlloc().  The FreeSid() frees a SID allocated by
AllocateAndInitializeSid().  I think that it is correct to use
HeapFree(GetProcessHeap(), 0, pTokenUser).

At present, a specific error, crash or trouble seems not to have happened.


src/port/exec.c:748	 AddUserToDacl()
src/port/exec.c:841      GetUserSid()
		pTokenUser = (PTOKEN_USER) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwLength);

src/port/exec.c:807      AddUserToDacl()
	FreeSid(psidUser);

______________________________________________________________________
 TAKATSUKA Haruka  harukat@sraoss.co.jp
 SRA OSS, Inc  http://www.sraoss.co.jp