MFC: Unvalidated extra length in ProcEstablishConnection (CVE-2017-12176)
This commit is contained in:
parent
186982901a
commit
f51fea01a3
@ -3654,7 +3654,12 @@ ProcEstablishConnection(ClientPtr client)
|
|||||||
prefix = (xConnClientPrefix *) ((char *) stuff + sz_xReq);
|
prefix = (xConnClientPrefix *) ((char *) stuff + sz_xReq);
|
||||||
auth_proto = (char *) prefix + sz_xConnClientPrefix;
|
auth_proto = (char *) prefix + sz_xConnClientPrefix;
|
||||||
auth_string = auth_proto + pad_to_int32(prefix->nbytesAuthProto);
|
auth_string = auth_proto + pad_to_int32(prefix->nbytesAuthProto);
|
||||||
if ((prefix->majorVersion != X_PROTOCOL) ||
|
|
||||||
|
if ((client->req_len << 2) != sz_xReq + sz_xConnClientPrefix +
|
||||||
|
pad_to_int32(prefix->nbytesAuthProto) +
|
||||||
|
pad_to_int32(prefix->nbytesAuthString))
|
||||||
|
reason = "Bad length";
|
||||||
|
else if ((prefix->majorVersion != X_PROTOCOL) ||
|
||||||
(prefix->minorVersion != X_PROTOCOL_REVISION))
|
(prefix->minorVersion != X_PROTOCOL_REVISION))
|
||||||
reason = "Protocol version mismatch";
|
reason = "Protocol version mismatch";
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user