From: Jon Trulson Date: Fri, 26 Dec 2014 23:55:46 +0000 (-0700) Subject: dtlogin: Coverity (memory corruption, moderate) X-Git-Tag: 2.2.3~70 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b881408be0e09ed01863663daf11d99a930ef8bf;p=oweals%2Fcde.git dtlogin: Coverity (memory corruption, moderate) --- diff --git a/cde/programs/dtlogin/server.c b/cde/programs/dtlogin/server.c index 2445ed99..373c9e10 100644 --- a/cde/programs/dtlogin/server.c +++ b/cde/programs/dtlogin/server.c @@ -49,6 +49,7 @@ # include # include # include +# include # include # include "dm.h" # include "vgmsg.h" @@ -101,7 +102,7 @@ static const char * _SysErrorMsg( int n ) { - const char *s = ((n >= 0 && n < sys_nerr) ? sys_errlist[n] : "unknown error"); + const char *s = strerror(n); return (s ? s : "no such error"); } diff --git a/cde/programs/dtlogin/session.c b/cde/programs/dtlogin/session.c index 5aaba3cf..0693e45c 100644 --- a/cde/programs/dtlogin/session.c +++ b/cde/programs/dtlogin/session.c @@ -54,6 +54,7 @@ #ifdef _AIX #ifdef _POWER #include +#include #include #endif /* _POWER */ # include @@ -331,8 +332,7 @@ static int IOErrorHandler( Display *dpy ) { - const char *s = ((errno >= 0 && errno < sys_nerr) ? sys_errlist[errno] - : "unknown error"); + const char *s = strerror(errno); LogError(ReadCatalog( MC_LOG_SET,MC_LOG_FATAL_IO,MC_DEF_LOG_FATAL_IO), @@ -657,14 +657,14 @@ LoadXloginResources( struct display *d ) if (access (resources, R_OK) != 0) { /** fallback to the C locale for resources **/ Debug("LoadXloginResources - cant access %s\n", resources); - Debug("\t %s. Falling back to C.\n", sys_errlist[errno]); + Debug("\t %s. Falling back to C.\n", strerror(errno)); free(resources); resources = _ExpandLang(d->resources, "C"); if (access (resources, R_OK) != 0) { /** can't find a resource file, so bail **/ Debug("LoadXloginResources - cant access %s.\n", resources); Debug("\t %s. Unable to find resource file.\n", - sys_errlist[errno]); + strerror(errno)); free(resources); return(-1); } @@ -775,7 +775,7 @@ LoadAltDtsResources(struct display *d) if (access (resources, R_OK) != 0) { Debug("LoadAltDtsResources- cant access %s.\n", resources); - Debug("\t %s. Falling back to C.\n", sys_errlist[errno]); + Debug("\t %s. Falling back to C.\n", strerror(errno)); if (resources) { @@ -787,7 +787,7 @@ LoadAltDtsResources(struct display *d) if (access (resources, R_OK) != 0) { Debug("LoadAltDtsResources- cant access %s.\n", resources); - Debug("\t %s.\n", sys_errlist[errno]); + Debug("\t %s.\n", strerror(errno)); } else strcpy(dirname[j], resources); @@ -828,7 +828,7 @@ LoadAltDtsResources(struct display *d) { Debug("LoadAltDtsResources- cant access %s.\n", resources); - Debug("\t %s.\n", sys_errlist[errno]); + Debug("\t %s.\n", strerror(errno)); continue; } @@ -1941,7 +1941,7 @@ RunGreeter( struct display *d, struct greet_info *greet, char *p; char **env; char *path; - struct greet_state state; + struct greet_state state = {}; int notify_dt; #ifdef __PASSWD_ETC @@ -2441,7 +2441,11 @@ RunGreeter( struct display *d, struct greet_info *greet, * the master struct. When the user logs out, the * resource-specified language (if any) will reactivate. */ - Debug("Greeter returned language '%s'\n", d->language); + if (d->language) + Debug("Greeter returned language '%s'\n", d->language); + else + Debug("Greeter returned language (NULL)\n"); + if (strcmp(d->language, "default") == 0) { int len = strlen(defaultLanguage) + 1; diff --git a/cde/programs/dtlogin/verify.c b/cde/programs/dtlogin/verify.c index 18776203..a538db46 100644 --- a/cde/programs/dtlogin/verify.c +++ b/cde/programs/dtlogin/verify.c @@ -325,7 +325,7 @@ userEnv( char *value; char **exp; char *Def_path; - char *langlist; + char *langlist = NULL; #ifdef _AIX /* @@ -525,7 +525,7 @@ systemEnv( struct display *d, char *user, char *home ) char **env; char *value; char **exp; - char *langlist; + char *langlist = NULL; env = 0; diff --git a/cde/programs/dtlogin/xdmcp.c b/cde/programs/dtlogin/xdmcp.c index 79c692f6..a5ff7dd1 100644 --- a/cde/programs/dtlogin/xdmcp.c +++ b/cde/programs/dtlogin/xdmcp.c @@ -582,7 +582,7 @@ forward_respond (struct sockaddr *from, int fromlen, int length) #ifdef AF_INET case AF_INET: { - struct sockaddr_in in_addr; + static struct sockaddr_in in_addr; if (clientAddress.length != 4 || clientPort.length != 2) @@ -604,7 +604,7 @@ forward_respond (struct sockaddr *from, int fromlen, int length) #ifdef AF_UNIX case AF_UNIX: { - struct sockaddr_un un_addr; + static struct sockaddr_un un_addr; if (clientAddress.length >= sizeof (un_addr.sun_path)) goto badAddress;