diff --git a/cde/programs/dtlogin/auth.c b/cde/programs/dtlogin/auth.c index 366e4ead0..577558194 100644 --- a/cde/programs/dtlogin/auth.c +++ b/cde/programs/dtlogin/auth.c @@ -565,7 +565,7 @@ binaryEqual (char *a, char *b, unsigned short len) return 1; } -int +static void dumpBytes (unsigned short len, char *data) { unsigned short i; @@ -709,7 +709,7 @@ writeAuth (file, auth) dumpAuth (auth); /* does Debug only */ } - if (doWrite) + if (doWrite) { if (!XauWriteAuth (file, auth) || fflush (file) == EOF) { LogError( ReadCatalog(MC_LOG_SET,MC_LOG_SRV_WRT,MC_DEF_LOG_SRV_WRT), @@ -717,7 +717,11 @@ writeAuth (file, auth) return 0; } else + { return 1; + } + } + return 1; } static void diff --git a/cde/programs/dtlogin/choose.c b/cde/programs/dtlogin/choose.c index ea902fcff..c600e5187 100644 --- a/cde/programs/dtlogin/choose.c +++ b/cde/programs/dtlogin/choose.c @@ -425,6 +425,7 @@ ProcessChooserSocket ( } close (client_fd); + return 1; } void diff --git a/cde/programs/dtlogin/chooser.c b/cde/programs/dtlogin/chooser.c index 37e617fc6..86e4dbd6a 100644 --- a/cde/programs/dtlogin/chooser.c +++ b/cde/programs/dtlogin/chooser.c @@ -397,7 +397,6 @@ AddHostname (ARRAY8Ptr hostname, ARRAY8Ptr status, struct sockaddr *addr, int wi } if (!XdmcpAllocARRAY8 (&new->hostaddr, hostAddr.length)) { - free ((char *) new->fullname); free ((char *) new); return 0; } @@ -759,6 +758,9 @@ Choose (HostName *h) addr = (struct sockaddr *) &in_addr; len = sizeof (in_addr); break; + default: + fprintf (stderr, "Unhandled protocol family %d\n", family); + exit (REMANAGE_DISPLAY); } if ((fd = socket (family, SOCK_STREAM, 0)) == -1) { diff --git a/cde/programs/dtlogin/error.c b/cde/programs/dtlogin/error.c index b60a628a4..1745b4c60 100644 --- a/cde/programs/dtlogin/error.c +++ b/cde/programs/dtlogin/error.c @@ -171,7 +171,8 @@ void TrimErrorFile( void ) { - int f1, f2; + int f1 = -1; + int f2 = -1; int deleteBytes; char buf[BUFSIZ]; diff --git a/cde/programs/dtlogin/file.c b/cde/programs/dtlogin/file.c index 30e487c4d..a12f73bbf 100644 --- a/cde/programs/dtlogin/file.c +++ b/cde/programs/dtlogin/file.c @@ -210,6 +210,7 @@ ParseDisplay( char *source, LogError(ReadCatalog(MC_LOG_SET,MC_LOG_MISS_TYPE,MC_DEF_LOG_MISS_TYPE), args[0]); freeArgs (args); + free(name); return 0; } diff --git a/cde/programs/dtlogin/genauth.c b/cde/programs/dtlogin/genauth.c index 99d9f3c1d..357baf0bb 100644 --- a/cde/programs/dtlogin/genauth.c +++ b/cde/programs/dtlogin/genauth.c @@ -478,6 +478,8 @@ InitCryptoKey( void ) } cryptoInited = 1; + + return 1; } #endif /* HASXDMAUTH */ diff --git a/cde/programs/dtlogin/policy.c b/cde/programs/dtlogin/policy.c index b78549480..390660623 100644 --- a/cde/programs/dtlogin/policy.c +++ b/cde/programs/dtlogin/policy.c @@ -164,14 +164,16 @@ Willing( #endif ret = AcceptableDisplayAddress (addr, connectionType, type); if (!ret) - sprintf (statusBuf, "Display not authorized to connect"); + snprintf (statusBuf, sizeof(statusBuf), "Display not authorized to connect"); else - sprintf (statusBuf, "%s", WillingMsg()); + snprintf (statusBuf, sizeof(statusBuf), "%s", WillingMsg()); #if 0 - sprintf (statusBuf, "host %s", localHostname()); + snprintf (statusBuf, sizeof(statusBuf), "host %s", localHostname()); #endif + /* enforce termination */ + statusBuf[255] = '\0'; - status->length = strlen (statusBuf); + status->length = strlen(statusBuf); status->data = (CARD8Ptr) malloc (status->length); if (!status->data) status->length = 0; diff --git a/cde/programs/dtlogin/session.c b/cde/programs/dtlogin/session.c index 0693e45cd..9a4284473 100644 --- a/cde/programs/dtlogin/session.c +++ b/cde/programs/dtlogin/session.c @@ -644,7 +644,7 @@ int LoadXloginResources( struct display *d ) { char cmd[1024]; - char *language=""; + char *language = NULL; char *lang_key=""; char *authority=""; char *auth_key=""; @@ -1943,6 +1943,8 @@ RunGreeter( struct display *d, struct greet_info *greet, char *path; struct greet_state state = {}; int notify_dt; + int dupfp = -1; + int dupfp2 = -1; #ifdef __PASSWD_ETC # ifndef U_NAMELEN @@ -2126,7 +2128,8 @@ RunGreeter( struct display *d, struct greet_info *greet, * Writing to file descriptor 1 goes to response pipe instead. */ close(1); - if(-1 == dup(response[1])) { + dupfp = dup(response[1]); + if(-1 == dupfp) { perror(strerror(errno)); } close(response[0]); @@ -2136,7 +2139,8 @@ RunGreeter( struct display *d, struct greet_info *greet, * Reading from file descriptor 0 reads from request pipe instead. */ close(0); - if(-1 == dup(request[0])) { + dupfp2 = dup(request[0]); + if(-1 == dupfp2) { perror(strerror(errno)); } close(request[0]); diff --git a/cde/programs/dtlogin/vgcallback.c b/cde/programs/dtlogin/vgcallback.c index 934fd9956..b0863a20e 100644 --- a/cde/programs/dtlogin/vgcallback.c +++ b/cde/programs/dtlogin/vgcallback.c @@ -1242,6 +1242,8 @@ RequestCB( XmFONTLIST_DEFAULT_TAG)); string = XmStringConcat(xmstr, XmStringSeparatorCreate()); } + + fclose(fp); } else {