os: fix use after free in EstablishNewConnections
In the case of failure on AllocNewConnection, new_trans_conn cannot be
dereferenced because it's already freed. Swapping the order of this logic fix
the changes introduced in 04956b8043
.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
CC: Jeremy Huddleston <jeremyhu@freedesktop.org>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
This commit is contained in:
parent
82498e3c2c
commit
f603061e94
|
@ -852,15 +852,14 @@ EstablishNewConnections(ClientPtr clientUnused, pointer closure)
|
|||
|
||||
_XSERVTransSetOption(new_trans_conn, TRANS_NONBLOCKING, 1);
|
||||
|
||||
if(trans_conn->flags & TRANS_NOXAUTH)
|
||||
new_trans_conn->flags = new_trans_conn->flags | TRANS_NOXAUTH;
|
||||
|
||||
if (!AllocNewConnection (new_trans_conn, newconn, connect_time))
|
||||
{
|
||||
ErrorConnMax(new_trans_conn);
|
||||
_XSERVTransClose(new_trans_conn);
|
||||
}
|
||||
|
||||
if(trans_conn->flags & TRANS_NOXAUTH)
|
||||
new_trans_conn->flags = new_trans_conn->flags | TRANS_NOXAUTH;
|
||||
|
||||
}
|
||||
#ifndef WIN32
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue