[Xcb-commit] src
Julien Danjou
jdanjou at kemper.freedesktop.org
Tue Nov 23 05:59:04 PST 2010
src/xcb_auth.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
New commits:
commit 5755582444ad0ba79e661ab3173cc38e9e588d83
Author: Nick Bowler <nbowler at draconx.ca>
Date: Wed Nov 10 20:49:41 2010 -0500
xcb_auth: Fix memory leak in _xcb_get_auth_info.
If the initial get_peer_sock_name(getpeername ...) succeeds, the
pointer to allocated memory is overwritten by the later call to
get_peer_sock_name(getsockname ...). Fix that up by freeing
the allocated memory before overwriting the pointer.
Signed-off-by: Nick Bowler <nbowler at draconx.ca>
Signed-off-by: Julien Danjou <julien at danjou.info>
diff --git a/src/xcb_auth.c b/src/xcb_auth.c
index 1af27fc..4839b78 100644
--- a/src/xcb_auth.c
+++ b/src/xcb_auth.c
@@ -327,10 +327,15 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
if (!info->namelen)
goto no_auth; /* out of memory */
- if (!gotsockname && (sockname = get_peer_sock_name(getsockname, fd)) == NULL)
+ if (!gotsockname)
{
- free(info->name);
- goto no_auth; /* can only authenticate sockets */
+ free(sockname);
+
+ if ((sockname = get_peer_sock_name(getsockname, fd)) == NULL)
+ {
+ free(info->name);
+ goto no_auth; /* can only authenticate sockets */
+ }
}
ret = compute_auth(info, authptr, sockname);
More information about the xcb-commit
mailing list