From 73a1cb9c92c936c2c1ae3d69fed743e21916d687 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 23 Apr 2018 16:19:12 -0400 Subject: [PATCH] dix: Factor out extension availability check Signed-off-by: Adam Jackson --- dix/extension.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/dix/extension.c b/dix/extension.c index b4c1c5f16..7d432c722 100644 --- a/dix/extension.c +++ b/dix/extension.c @@ -210,6 +210,14 @@ CloseDownExtensions(void) lastError = FirstExtensionError; } +static Bool +ExtensionAvailable(ClientPtr client, ExtensionEntry *ext) +{ + if (XaceHook(XACE_EXT_ACCESS, client, ext) != Success) + return FALSE; + return TRUE; +} + int ProcQueryExtension(ClientPtr client) { @@ -231,7 +239,7 @@ ProcQueryExtension(ClientPtr client) reply.present = xFalse; else { i = FindExtension((char *) &stuff[1], stuff->nbytes); - if (i < 0 || XaceHook(XACE_EXT_ACCESS, client, extensions[i])) + if (i < 0 || !ExtensionAvailable(client, extensions[i])) reply.present = xFalse; else { reply.present = xTrue; @@ -266,7 +274,7 @@ ProcListExtensions(ClientPtr client) for (i = 0; i < NumExtensions; i++) { /* call callbacks to find out whether to show extension */ - if (XaceHook(XACE_EXT_ACCESS, client, extensions[i]) != Success) + if (!ExtensionAvailable(client, extensions[i])) continue; total_length += strlen(extensions[i]->name) + 1; @@ -279,7 +287,7 @@ ProcListExtensions(ClientPtr client) for (i = 0; i < NumExtensions; i++) { int len; - if (XaceHook(XACE_EXT_ACCESS, client, extensions[i]) != Success) + if (!ExtensionAvailable(client, extensions[i])) continue; *bufptr++ = len = strlen(extensions[i]->name);