1 From 2272f6421cabc916fabae78faad568b1c96af618 Mon Sep 17 00:00:00 2001
2 From: Nick Bowler <nbowler@elliptictech.com>
3 Date: Wed, 10 Nov 2010 10:11:36 -0500
4 Subject: [PATCH] xcb_auth: Fix memory leak in _xcb_get_auth_info.
6 If the initial get_peer_sock_name(getpeername ...) succeeds, the
7 pointer to allocated memory is overwritten by the later call to
8 get_peer_sock_name(getsockname ...). Fix that up by freeing
9 the allocated memory before overwriting the pointer.
11 Signed-off-by: Nick Bowler <nbowler@draconx.ca>
13 src/xcb_auth.c | 11 ++++++++---
14 1 files changed, 8 insertions(+), 3 deletions(-)
16 diff --git a/src/xcb_auth.c b/src/xcb_auth.c
17 index 1af27fc..4839b78 100644
20 @@ -327,10 +327,15 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
22 goto no_auth; /* out of memory */
24 - if (!gotsockname && (sockname = get_peer_sock_name(getsockname, fd)) == NULL)
28 - goto no_auth; /* can only authenticate sockets */
31 + if ((sockname = get_peer_sock_name(getsockname, fd)) == NULL)
34 + goto no_auth; /* can only authenticate sockets */
38 ret = compute_auth(info, authptr, sockname);