dix: Remove extension aliases

This appears to be essentially unused. The only known client-side
library for the SELinux extension is xcb, which does not look for the
name "Flask". The "SGI-GLX" alias for GLX appears to be a bit of
superstition at this point, NVIDIA's driver does not expose it and Mesa
does not check for it.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Adam Jackson 2017-06-16 15:44:42 -04:00
parent 88e807d4fa
commit f44e0af4da
5 changed files with 4 additions and 61 deletions

View File

@ -714,6 +714,4 @@ SELinuxExtensionInit(void)
SELinuxNumberEvents, SELinuxNumberErrors, SELinuxNumberEvents, SELinuxNumberErrors,
ProcSELinuxDispatch, SProcSELinuxDispatch, ProcSELinuxDispatch, SProcSELinuxDispatch,
SELinuxResetProc, StandardMinorOpcode); SELinuxResetProc, StandardMinorOpcode);
AddExtensionAlias("Flask", extEntry);
} }

View File

@ -95,8 +95,6 @@ AddExtension(const char *name, int NumEvents, int NumErrors,
return NULL; return NULL;
} }
ext->name = strdup(name); ext->name = strdup(name);
ext->num_aliases = 0;
ext->aliases = (const char **) NULL;
if (!ext->name) { if (!ext->name) {
dixFreePrivates(ext->devPrivates, PRIVATE_EXTENSION); dixFreePrivates(ext->devPrivates, PRIVATE_EXTENSION);
free(ext); free(ext);
@ -144,42 +142,15 @@ AddExtension(const char *name, int NumEvents, int NumErrors,
return ext; return ext;
} }
Bool
AddExtensionAlias(const char *alias, ExtensionEntry * ext)
{
char *name;
const char **aliases;
if (!ext)
return FALSE;
aliases = reallocarray(ext->aliases, ext->num_aliases + 1, sizeof(char *));
if (!aliases)
return FALSE;
ext->aliases = aliases;
name = strdup(alias);
if (!name)
return FALSE;
ext->aliases[ext->num_aliases] = name;
ext->num_aliases++;
return TRUE;
}
static int static int
FindExtension(const char *extname, int len) FindExtension(const char *extname, int len)
{ {
int i, j; int i;
for (i = 0; i < NumExtensions; i++) { for (i = 0; i < NumExtensions; i++) {
if ((strlen(extensions[i]->name) == len) && if ((strlen(extensions[i]->name) == len) &&
!strncmp(extname, extensions[i]->name, len)) !strncmp(extname, extensions[i]->name, len))
break; break;
for (j = extensions[i]->num_aliases; --j >= 0;) {
if ((strlen(extensions[i]->aliases[j]) == len) &&
!strncmp(extname, extensions[i]->aliases[j], len))
break;
}
if (j >= 0)
break;
} }
return ((i == NumExtensions) ? -1 : i); return ((i == NumExtensions) ? -1 : i);
} }
@ -223,16 +194,13 @@ StandardMinorOpcode(ClientPtr client)
void void
CloseDownExtensions(void) CloseDownExtensions(void)
{ {
int i, j; int i;
for (i = NumExtensions - 1; i >= 0; i--) { for (i = NumExtensions - 1; i >= 0; i--) {
if (extensions[i]->CloseDown) if (extensions[i]->CloseDown)
extensions[i]->CloseDown(extensions[i]); extensions[i]->CloseDown(extensions[i]);
NumExtensions = i; NumExtensions = i;
free((void *) extensions[i]->name); free((void *) extensions[i]->name);
for (j = extensions[i]->num_aliases; --j >= 0;)
free((void *) extensions[i]->aliases[j]);
free(extensions[i]->aliases);
dixFreePrivates(extensions[i]->devPrivates, PRIVATE_EXTENSION); dixFreePrivates(extensions[i]->devPrivates, PRIVATE_EXTENSION);
free(extensions[i]); free(extensions[i]);
} }
@ -294,7 +262,7 @@ ProcListExtensions(ClientPtr client)
buffer = NULL; buffer = NULL;
if (NumExtensions) { if (NumExtensions) {
int i, j; int i;
for (i = 0; i < NumExtensions; i++) { for (i = 0; i < NumExtensions; i++) {
/* call callbacks to find out whether to show extension */ /* call callbacks to find out whether to show extension */
@ -302,9 +270,7 @@ ProcListExtensions(ClientPtr client)
continue; continue;
total_length += strlen(extensions[i]->name) + 1; total_length += strlen(extensions[i]->name) + 1;
reply.nExtensions += 1 + extensions[i]->num_aliases; reply.nExtensions += 1;
for (j = extensions[i]->num_aliases; --j >= 0;)
total_length += strlen(extensions[i]->aliases[j]) + 1;
} }
reply.length = bytes_to_int32(total_length); reply.length = bytes_to_int32(total_length);
buffer = bufptr = malloc(total_length); buffer = bufptr = malloc(total_length);
@ -319,11 +285,6 @@ ProcListExtensions(ClientPtr client)
*bufptr++ = len = strlen(extensions[i]->name); *bufptr++ = len = strlen(extensions[i]->name);
memmove(bufptr, extensions[i]->name, len); memmove(bufptr, extensions[i]->name, len);
bufptr += len; bufptr += len;
for (j = extensions[i]->num_aliases; --j >= 0;) {
*bufptr++ = len = strlen(extensions[i]->aliases[j]);
memmove(bufptr, extensions[i]->aliases[j], len);
bufptr += len;
}
} }
} }
WriteReplyToClient(client, sizeof(xListExtensionsReply), &reply); WriteReplyToClient(client, sizeof(xListExtensionsReply), &reply);

View File

@ -424,10 +424,6 @@ GlxExtensionInit(void)
FatalError("__glXExtensionInit: AddExtensions failed\n"); FatalError("__glXExtensionInit: AddExtensions failed\n");
return; return;
} }
if (!AddExtensionAlias(GLX_EXTENSION_ALIAS, extEntry)) {
ErrorF("__glXExtensionInit: AddExtensionAlias failed\n");
return;
}
__glXErrorBase = extEntry->errorBase; __glXErrorBase = extEntry->errorBase;
__glXEventBase = extEntry->eventBase; __glXEventBase = extEntry->eventBase;

View File

@ -323,12 +323,6 @@ GlxExtensionInit(void)
FatalError("__glXExtensionInit: AddExtensions failed\n"); FatalError("__glXExtensionInit: AddExtensions failed\n");
return; return;
} }
/*
if (!AddExtensionAlias(GLX_EXTENSION_ALIAS, extEntry)) {
ErrorF("__glXExtensionInit: AddExtensionAlias failed\n");
return;
}
*/
__glXerrorBase = extEntry->errorBase; __glXerrorBase = extEntry->errorBase;
__glXBadContext = extEntry->errorBase + GLXBadContext; __glXBadContext = extEntry->errorBase + GLXBadContext;

View File

@ -64,8 +64,6 @@ typedef struct _ExtensionEntry {
int eventLast; int eventLast;
int errorBase; int errorBase;
int errorLast; int errorLast;
int num_aliases;
const char **aliases;
void *extPrivate; void *extPrivate;
unsigned short (*MinorOpcode) ( /* called for errors */ unsigned short (*MinorOpcode) ( /* called for errors */
ClientPtr /* client */ ); ClientPtr /* client */ );
@ -95,10 +93,6 @@ AddExtension(const char * /*name */ ,
unsigned short (* /*MinorOpcodeProc */ )(ClientPtr /*client */ ) unsigned short (* /*MinorOpcodeProc */ )(ClientPtr /*client */ )
); );
extern _X_EXPORT Bool
AddExtensionAlias(const char * /*alias */ ,
ExtensionEntry * /*extension */ );
extern _X_EXPORT ExtensionEntry * extern _X_EXPORT ExtensionEntry *
CheckExtension(const char *extname); CheckExtension(const char *extname);
extern _X_EXPORT ExtensionEntry * extern _X_EXPORT ExtensionEntry *