[PATCH:libICE 0/6] gcc -Wwrite-strings warning fixes

Alan Coopersmith alan.coopersmith at oracle.com
Wed Nov 9 22:19:49 PST 2011


plus a bonus cleanup of ancient cruft noticed in the process.

Changes the definition of one public API function to take const char *
arguments instead of char *, otherwise all changes are internal API or
local functions only.

Before this series, there were 62 -Wwrite-strings warnings in libICE.

After this series, there remain 3 unfixed -Wwrite-strings warnings,
which need more investigation - if anyone feels like pitching in,
please feel free to do so:

process.c: In function 'ProcessError':
process.c:718:23: warning: initialization discards qualifiers from pointer target type

            char *errorStr = "";

errorStr has to be non-const since it's returned to the caller via 
errorReply->error_message, and the caller is responsible for freeing it.
I'm not sure if this should be replaced by setting the pointer to NULL
or to strdup(""), but we'd only want to do the strdup in the default case
of the switch statement that follows so we didn't leak in the other cases
that overwrite errorStr, and I'm not sure if even then it's needed.

process.c: In function 'ProcessConnectionReply':
process.c:1794:32: warning: assignment discards qualifiers from pointer target type
process.c: In function 'ProcessProtocolReply':
process.c:2298:32: warning: assignment discards qualifiers from pointer target type

Both of these are:

            errorReply->error_message =
                "Received bad version index in Connection Reply";

I think this might be a bug, especially if the caller tries to free, but
I haven't walked back through the code path to find out.

Alan Coopersmith (6):
  Fix gcc -Wwrite-strings warnings in _IceDefaultErrorHandler
  Fix gcc -Wwrite-strings warnings in _IceError* functions
  constify arguments to IceGetAuthFileEntry
  Fix gcc -Wwrite-strings warnings in AuthNames handling
  Fix gcc -Wwrite-strings warnings in process.c
  Remove ancient workaround for System V/386 Release 4.2 compiler bug

 doc/ICElib.xml            |    6 ++--
 include/X11/ICE/ICEutil.h |    6 ++--
 src/ICElibint.h           |   36 +++++++++++++++++-----------------
 src/authutil.c            |    6 ++--
 src/error.c               |   45 ++++++++++++++++++++++---------------------
 src/getauth.c             |   40 +++++++++++++++++++-------------------
 src/globals.h             |    2 +-
 src/process.c             |   47 +++++++++++++++++++-------------------------
 src/protosetup.c          |    2 +-
 9 files changed, 92 insertions(+), 98 deletions(-)

-- 
1.7.3.2



More information about the xorg-devel mailing list