gcc was warning from storing string constants in a char *name field:
auth.c:64:1: warning: initialization discards qualifiers from pointer target 
type
auth.c:72:1: warning: initialization discards qualifiers from pointer target 
type
auth.c:81:1: warning: initialization discards qualifiers from pointer target 
type

Making the field const requires changing AuthorizationFromID to take
a const char ** pointer for the name argument which it sets to point
to the matching name entry.

Changing that argument requires changing its sole caller in the security
extension to pass the address of a const char * variable to it, which it
can do, since the only thing it does with the returned name is to pass
it back to the RemoveAuthorization function that already expects a const
char *name.

Signed-off-by: Alan Coopersmith <[email protected]>
---
 Xext/security.c |    3 ++-
 include/os.h    |    2 +-
 os/auth.c       |    4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/Xext/security.c b/Xext/security.c
index 6fc1eaf..63892aa 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -171,7 +171,8 @@ SecurityDeleteAuthorization(
 {
     SecurityAuthorizationPtr pAuth = (SecurityAuthorizationPtr)value;
     unsigned short name_len, data_len;
-    char *name, *data;
+    const char *name;
+    char *data;
     int status;
     int i;
     OtherClientsPtr pEventClient;
diff --git a/include/os.h b/include/os.h
index 1fd5367..0b50241 100644
--- a/include/os.h
+++ b/include/os.h
@@ -405,7 +405,7 @@ extern _X_EXPORT void InitAuthorization(char * 
/*filename*/);
 extern _X_EXPORT int AuthorizationFromID (
        XID             id,
        unsigned short  *name_lenp,
-       char            **namep,
+       const char      **namep,
        unsigned short  *data_lenp,
        char            **datap);
 
diff --git a/os/auth.c b/os/auth.c
index 7685751..9d36249 100644
--- a/os/auth.c
+++ b/os/auth.c
@@ -48,7 +48,7 @@ from The Open Group.
 
 struct protocol {
     unsigned short   name_length;
-    char    *name;
+    const char         *name;
     AuthAddCFunc       Add;    /* new authorization data */
     AuthCheckFunc      Check;  /* verify client authorization data */
     AuthRstCFunc       Reset;  /* delete all authorization data entries */
@@ -236,7 +236,7 @@ int
 AuthorizationFromID (
        XID             id,
        unsigned short  *name_lenp,
-       char            **namep,
+       const char      **namep,
        unsigned short  *data_lenp,
        char            **datap)
 {
-- 
1.7.3.2

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to