diff options
author | Keith Packard <keithp@keithp.com> | 2011-11-08 10:13:15 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-12-01 15:11:20 +0000 |
commit | fb22a408c69a84f81905147de9e82cf66ffb6eb2 (patch) | |
tree | 31940825720420898c4bf9d793560b54642692a3 /Xext | |
parent | 05f09354a30a4f5edd421220e1aa97be754c71bb (diff) |
Save major/minor opcodes in ClientRec for RecordAReply
The record extension needs the major and minor opcodes in the reply
hook, but the request buffer may have been freed by the time the hook
is invoked. Saving the request major and minor codes as the request is
executed avoids fetching from the defunct request buffer.
This patch also eliminates the public MinorOpcodeOfRequest function,
inlining it into Dispatch. Usages of that function have been replaced
with direct access to the new ClientRec field.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Diffstat (limited to 'Xext')
-rw-r--r-- | Xext/security.c | 4 | ||||
-rw-r--r-- | Xext/xselinux_hooks.c | 4 |
2 files changed, 3 insertions, 5 deletions
diff --git a/Xext/security.c b/Xext/security.c index 0a63aa280..6fc1eafdd 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -148,9 +148,7 @@ SecurityLabelInitial(void) static _X_INLINE const char * SecurityLookupRequestName(ClientPtr client) { - int major = ((xReq *)client->requestBuffer)->reqType; - int minor = MinorOpcodeOfRequest(client); - return LookupRequestName(major, minor); + return LookupRequestName(client->majorOp, client->minorOp); } diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c index f1d8e5d2f..0d4c9ab11 100644 --- a/Xext/xselinux_hooks.c +++ b/Xext/xselinux_hooks.c @@ -263,8 +263,8 @@ SELinuxAudit(void *auditdata, if (client) { REQUEST(xReq); if (stuff) { - major = stuff->reqType; - minor = MinorOpcodeOfRequest(client); + major = client->majorOp; + minor = client->minorOp; } } if (audit->id) |