From 881b0e1ed080d21780f3cb6e6f3b5a124e245491 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 15:42:04 -0700 Subject: [PATCH 01/14] dtsession/SmGlobals: fixup 17 coverity issues. --- cde/programs/dtsession/SmGlobals.c | 117 +++++++++++++++++++---------- 1 file changed, 77 insertions(+), 40 deletions(-) diff --git a/cde/programs/dtsession/SmGlobals.c b/cde/programs/dtsession/SmGlobals.c index 9b31be089..b7e538791 100644 --- a/cde/programs/dtsession/SmGlobals.c +++ b/cde/programs/dtsession/SmGlobals.c @@ -476,7 +476,7 @@ InitSMGlobals( void ) /* * Pull screen saver resources from Dtsession*. */ - smGD.SmNextension = smGD.SmNextension = smGD.extensionSpec = ""; + smGD.SmNextension = smGD.SmCextension = smGD.extensionSpec = ""; } XtGetSubresources(smGD.topLevelWid, (XtPointer) &smSaverRes, @@ -703,7 +703,7 @@ SetRestorePath( pch = strdup ((char *) GETMESSAGE (40, 15, " No session name was provided for the -session command line option.")); - if (!pch) + if (pch) { DtMsgLogMessage (argv[0], DtMsgLogWarning, pch); free (pch); @@ -1109,22 +1109,26 @@ SetSavePath( if(status == 0) { char * tmpName; - char * tmpDir; + int len, tfd; - strcpy (savedOldDir, smGD.etcPath); + strcpy(savedOldDir, smGD.etcPath); - tmpName = (char *) XtMalloc (strlen (smGD.restoreSession) + 2); - sprintf (tmpName, "%s.", smGD.restoreSession); - if (strlen (tmpName) > 5) { - tmpName[4] = '.'; - tmpName[5] = '\000'; - } - tmpDir = (char *) tempnam (smGD.savePath, tmpName); - MoveDirectory (smGD.etcPath, tmpDir, False); + len = strlen(smGD.restoreSession) + strlen("XXXXXX") + 2; + tmpName = (char *) XtCalloc(1, len); - strcpy (savedTmpDir, tmpDir); - free (tmpDir); - XtFree ((char *) tmpName); + sprintf(tmpName, "%s.XXXXXX", smGD.restoreSession); + if ((tfd = mkstemp(tmpName)) == -1) + { + PrintErrnoError(DtError, smNLS.cantCreateDirsString); + } + else + { + close(tfd); + MoveDirectory(smGD.etcPath, tmpName, False); + + strncpy(savedTmpDir, tmpName, len - 1); + } + XtFree((char *) tmpName); } MoveDirectory(smGD.clientPath, smGD.etcPath, False); } @@ -1165,25 +1169,31 @@ SetSavePath( * save is complete. */ char * tmpName; - char * tmpDir; sprintf(smGD.etcPath, "%s.%s", smGD.clientPath, SM_OLD_EXTENSION); status = stat(smGD.etcPath, &buf); if(status == 0) { - tmpName = (char *) XtMalloc (strlen (smGD.restoreSession) + 2); - sprintf (tmpName, "%s.", smGD.restoreSession); - strcpy (savedOldDir, smGD.etcPath); - if (strlen (tmpName) > 5) { - tmpName[4] = '.'; - tmpName[5] = '\000'; - } - tmpDir = (char *) tempnam (smGD.savePath, tmpName); - MoveDirectory (smGD.etcPath, tmpDir, False); + int len, tfd; - strcpy (savedTmpDir, tmpDir); - free (tmpDir); - XtFree ((char *) tmpName); + len = strlen(smGD.restoreSession) + strlen("XXXXXX") + 2; + tmpName = (char *) XtCalloc(1, len); + sprintf(tmpName, "%s.XXXXXX", smGD.restoreSession); + + strcpy (savedOldDir, smGD.etcPath); + + if ((tfd = mkstemp(tmpName)) == -1) + { + PrintErrnoError(DtError, smNLS.cantCreateDirsString); + } + else + { + close(tfd); + MoveDirectory (smGD.etcPath, tmpName, False); + + strcpy (savedTmpDir, tmpName); + } + XtFree((char *) tmpName); } MoveDirectory(smGD.clientPath, smGD.etcPath, False); @@ -1194,13 +1204,21 @@ SetSavePath( status = mkdir(smGD.clientPath, 0000); if(status == -1) { + PrintErrnoError(DtError, smNLS.cantCreateDirsString); + smGD.clientPath[0] = 0; + smGD.settingPath[0] = 0; + smGD.resourcePath[0] = 0; + return(-1); + } + status = chmod(smGD.clientPath, 0755); + if(status == -1) + { PrintErrnoError(DtError, smNLS.cantCreateDirsString); smGD.clientPath[0] = 0; smGD.settingPath[0] = 0; smGD.resourcePath[0] = 0; return(-1); - } - chmod(smGD.clientPath, 0755); + } } strcat(smGD.clientPath, "/"); @@ -1284,7 +1302,13 @@ SetFontSavePath(char *langPtr) smGD.fontPath[0] = 0; return(-1); } - chmod(smGD.fontPath, 0755); + status = chmod(smGD.fontPath, 0755); + if(status == -1) + { + PrintErrnoError(DtError, smNLS.cantCreateDirsString); + smGD.fontPath[0] = 0; + return(-1); + } } return(0); @@ -1632,7 +1656,7 @@ TrimErrorlog( void ) len = strlen(home) + strlen(DtPERSONAL_CONFIG_DIRECTORY) + 2; if (len > MAXPATHLEN) savePath = SM_REALLOC(savePath, len); - sprintf(savePath, "%s/%s", home, DtPERSONAL_CONFIG_DIRECTORY); + snprintf(savePath, len - 1, "%s/%s", home, DtPERSONAL_CONFIG_DIRECTORY); /* * If errorlog.old exists and it is not empty, delete @@ -2352,11 +2376,11 @@ InitializeSpecificSession ( if (len > MAXPATHLEN) alt_dir = XtRealloc(alt_dir, len + 1); - (void) sprintf (alt_dir, "%s/%s/%s/%s", - home, - DtPERSONAL_CONFIG_DIRECTORY, - DtSM_SESSION_DIRECTORY, - SM_HOME_DIRECTORY); + snprintf(alt_dir, len, "%s/%s/%s/%s", + home, + DtPERSONAL_CONFIG_DIRECTORY, + DtSM_SESSION_DIRECTORY, + SM_HOME_DIRECTORY); if (!SetAlternateSession (session_dir, alt_dir, @@ -2412,6 +2436,12 @@ InitializePaths ( char *db_file = (char *) XtMalloc(MAXPATHLEN); struct stat buf; + if (!db_file) + { + PrintError(DtError, smNLS.cantMallocErrorString); + return; + } + smGD.savePath = _DtCreateDtDirs(disp); (void) sprintf (smGD.settingPath, "%s/%s/%s", @@ -2434,7 +2464,7 @@ InitializePaths ( if ((stat(db_file, &buf)) == 0) (void) strcpy (smGD.clientPath, db_file); } - if (db_file) XtFree(db_file); + XtFree(db_file); } @@ -2472,6 +2502,13 @@ SetAlternateSession ( char *db_file2 = (char *) XtMalloc(MAXPATHLEN); struct stat buf; + if (!db_file1 || !db_file2) + { + PrintError(DtError, smNLS.cantMallocErrorString); + return False; + } + + if ((stat (session_dir, &buf)) != 0) { /* * The requested dir does not exist, create it @@ -2560,8 +2597,8 @@ SetAlternateSession ( SetSysDefaults (); } - if (db_file1) XtFree(db_file1); - if (db_file2) XtFree(db_file2); + XtFree(db_file1); + XtFree(db_file2); return (True); } From 1148ae8794af2c89d692bd4140fb5a458ecfc5df Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 15:50:29 -0700 Subject: [PATCH 02/14] dtsession/SmCommun: fix bogus check (CID 89326) --- cde/programs/dtsession/SmCommun.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtsession/SmCommun.c b/cde/programs/dtsession/SmCommun.c index c86c0c1ac..df210d80c 100644 --- a/cde/programs/dtsession/SmCommun.c +++ b/cde/programs/dtsession/SmCommun.c @@ -786,7 +786,7 @@ ProcessClientMessage( _DtAddToResource(smGD.display, newRes); } - if (NULL != newRes) free(newRes); + free(newRes); } } else if (cEvent->message_type == XaDtSmSaverInfo) From f14df58edb6768ed2336a70e15637adb56e4ac52 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 15:54:55 -0700 Subject: [PATCH 03/14] dtsession/SmDB: error handling issues (CID 87778, 87926) --- cde/programs/dtsession/SmDB.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cde/programs/dtsession/SmDB.c b/cde/programs/dtsession/SmDB.c index 7fa5208f4..b6c0e9aaf 100644 --- a/cde/programs/dtsession/SmDB.c +++ b/cde/programs/dtsession/SmDB.c @@ -498,7 +498,8 @@ OpenOutputClientDB(char *fileName, /* Open fileName for writing. */ if ((outputDB->xrmDBFile = fopen(fileName, "w")) == (FILE *)NULL) { - rename(outputDB->tmpDBFileName, fileName); + int rv; + rv = rename(outputDB->tmpDBFileName, fileName); XtFree(outputDB->xrmDBFileName); XtFree(outputDB->tmpDBFileName); XtFree((char *)outputDB); @@ -705,9 +706,10 @@ CloseClientDB(ClientDB clientDBPtr, Boolean writeDB) } else { + int rv; /* Close file and remove it; restore original DB. */ fclose(clientDB->xrmDBFile); - rename(clientDB->tmpDBFileName, clientDB->xrmDBFileName); + rv = rename(clientDB->tmpDBFileName, clientDB->xrmDBFileName); } XtFree(clientDB->xrmDBFileName); From 1bde7d8c5cff8adc1ac9304cc6b0ef92aec74b51 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 16:06:23 -0700 Subject: [PATCH 04/14] dtsession/SmLock: potential null deref (CID 87561, 87957, 88181) --- cde/programs/dtsession/SmLock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cde/programs/dtsession/SmLock.c b/cde/programs/dtsession/SmLock.c index 25069851e..fb45d37c8 100644 --- a/cde/programs/dtsession/SmLock.c +++ b/cde/programs/dtsession/SmLock.c @@ -162,7 +162,8 @@ static Boolean CanReAuthenticate(char *name, uid_t uid, char *passwd, Boolean fail = False; *pwent = (name == NULL) ? getpwuid(uid) : getpwnam(name); - *spent = getspnam((*pwent)->pw_name); + if (pwent) + *spent = getspnam((*pwent)->pw_name); #ifdef JET_AUTHDEBUG fprintf(stderr, "CanReAuthenticate(): %s %s %s\n", From 4b38955b01ff538078dfe4ce69881dff974b2f1b Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 16:12:45 -0700 Subject: [PATCH 05/14] dtsession/SmGlobals: use of tainted string (CID 89450) --- cde/programs/dtsession/SmGlobals.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtsession/SmGlobals.c b/cde/programs/dtsession/SmGlobals.c index b7e538791..16853ef92 100644 --- a/cde/programs/dtsession/SmGlobals.c +++ b/cde/programs/dtsession/SmGlobals.c @@ -684,7 +684,7 @@ SetRestorePath( */ if (getenv("DISPLAY") == 0) { - sprintf(tmpDisplayName, "DISPLAY=%s", displayName); + snprintf(tmpDisplayName, MAXPATHLEN, "DISPLAY=%s", displayName); putenv(tmpDisplayName); } } From 93783917ab7c8b9f7688b04ac05894a5d38f3700 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 17:24:04 -0700 Subject: [PATCH 06/14] dtsession/SmGlobals: unlink mkstemp generated files. --- cde/programs/dtsession/SmGlobals.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cde/programs/dtsession/SmGlobals.c b/cde/programs/dtsession/SmGlobals.c index 16853ef92..8a0f68edd 100644 --- a/cde/programs/dtsession/SmGlobals.c +++ b/cde/programs/dtsession/SmGlobals.c @@ -1124,6 +1124,8 @@ SetSavePath( else { close(tfd); + unlink(tmpName); + MoveDirectory(smGD.etcPath, tmpName, False); strncpy(savedTmpDir, tmpName, len - 1); @@ -1189,6 +1191,8 @@ SetSavePath( else { close(tfd); + unlink(tmpName); + MoveDirectory (smGD.etcPath, tmpName, False); strcpy (savedTmpDir, tmpName); From 65dcf12c82c8bee2960b3f8928cc7ff71b9645d6 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 17:50:28 -0700 Subject: [PATCH 07/14] dtsession/SmGlobals: re-add smGD.savePath to generated paths, was lost in mkstemp changes. --- cde/programs/dtsession/SmGlobals.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cde/programs/dtsession/SmGlobals.c b/cde/programs/dtsession/SmGlobals.c index 8a0f68edd..51eeeef96 100644 --- a/cde/programs/dtsession/SmGlobals.c +++ b/cde/programs/dtsession/SmGlobals.c @@ -1113,10 +1113,13 @@ SetSavePath( strcpy(savedOldDir, smGD.etcPath); - len = strlen(smGD.restoreSession) + strlen("XXXXXX") + 2; + len = strlen(smGD.savePath) + strlen(smGD.restoreSession) + + strlen("XXXXXX") + 3; tmpName = (char *) XtCalloc(1, len); - sprintf(tmpName, "%s.XXXXXX", smGD.restoreSession); + sprintf(tmpName, "%s/%s.XXXXXX", smGD.savePath, + smGD.restoreSession); + if ((tfd = mkstemp(tmpName)) == -1) { PrintErrnoError(DtError, smNLS.cantCreateDirsString); @@ -1178,9 +1181,11 @@ SetSavePath( { int len, tfd; - len = strlen(smGD.restoreSession) + strlen("XXXXXX") + 2; + len = strlen(smGD.savePath) + strlen(smGD.restoreSession) + + strlen("XXXXXX") + 3; tmpName = (char *) XtCalloc(1, len); - sprintf(tmpName, "%s.XXXXXX", smGD.restoreSession); + sprintf(tmpName, "%s/%s.XXXXXX", smGD.savePath, + smGD.restoreSession); strcpy (savedOldDir, smGD.etcPath); From a657f302f7e07bbb6526ec4dd5823ac9ec0e812a Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 18:19:55 -0700 Subject: [PATCH 08/14] dtsession/SmRestore: fixup 8 coverity issues. --- cde/programs/dtsession/SmRestore.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/cde/programs/dtsession/SmRestore.c b/cde/programs/dtsession/SmRestore.c index 30204800b..1f556b461 100644 --- a/cde/programs/dtsession/SmRestore.c +++ b/cde/programs/dtsession/SmRestore.c @@ -590,7 +590,7 @@ RestoreState( void ) fileSize = MAXLINE + 1; } - line = (unsigned char *) malloc ((fileSize + 1) * sizeof(char *)); + line = malloc(fileSize + 1); if (line == NULL) { line = fallBackLine; @@ -828,6 +828,8 @@ RestoreResources( Boolean errorHandlerInstalled, ... ) char *argv[20]; va_list args; +#if 0 + /* JET - this seems like a bad (and unused) idea */ /* * Check for alternate resource loader. */ @@ -835,6 +837,9 @@ RestoreResources( Boolean errorHandlerInstalled, ... ) { pgrm = CDE_INSTALLATION_TOP "/bin/dtsession_res"; } +#else + pgrm = CDE_INSTALLATION_TOP "/bin/dtsession_res"; +#endif /* * By convention, exec() wants arg0 to be the program name. Ex: if pgrm @@ -1286,7 +1291,7 @@ RestoreSettings( void ) ptrSize += 50; restorePtrArray = (char **)SM_REALLOC((char *) restorePtrArray, ptrSize * - sizeof(char **)); + sizeof(char *)); if(restorePtrArray == NULL) { PrintErrnoError(DtError, smNLS.cantMallocErrorString); @@ -2065,6 +2070,7 @@ RestoreClients( void ) SM_FREE((char *) remoteBuf[i]); } } + free(displayName); return(-1); } cmdPtr = NULL; @@ -3499,7 +3505,7 @@ StartClient( if (!defaultCwd) { if (getenv ("HOME")) - defaultCwd = strdup (getenv ("HOME")); + defaultCwd = strndup (getenv("HOME"), MAXPATHLEN); else defaultCwd = getcwd (NULL, MAXPATHLEN + 1); From 7c702bff6e031530ca572be4202fc08acdb0eb70 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 19:01:30 -0700 Subject: [PATCH 09/14] dtsession/SmRestore: redo defaultCwd detection in StartClient() to be safer --- cde/programs/dtsession/SmRestore.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/cde/programs/dtsession/SmRestore.c b/cde/programs/dtsession/SmRestore.c index 1f556b461..53835c254 100644 --- a/cde/programs/dtsession/SmRestore.c +++ b/cde/programs/dtsession/SmRestore.c @@ -58,6 +58,7 @@ #include #include #include +#include #ifdef _SUN_OS /* to get the define for NOFILE */ #include #endif /* _SUN_OS */ @@ -3503,14 +3504,20 @@ StartClient( smRes.ignoreEnvironment, ','); } - if (!defaultCwd) { - if (getenv ("HOME")) - defaultCwd = strndup (getenv("HOME"), MAXPATHLEN); - else - defaultCwd = getcwd (NULL, MAXPATHLEN + 1); - - (void) gethostname (localHost, MAXHOSTNAMELEN); - } + if (!defaultCwd) + { + char *tstr = getenv("HOME"); + if (tstr) + { + int slen = strlen(tstr) + 1; + defaultCwd = XtCalloc(1, slen); + strncpy(defaultCwd, tstr, slen - 1); + } + else + defaultCwd = getcwd (NULL, MAXPATHLEN + 1); + + (void) gethostname (localHost, MAXHOSTNAMELEN); + } if (!cwd) { cwdNull = True; From e02c703af7aefd8d4914487c0c9a1a72fb04aff6 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 19:33:03 -0700 Subject: [PATCH 10/14] dtsession/SmSave: get rid of use of tempnam (CID 89359) --- cde/programs/dtsession/SmSave.c | 39 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/cde/programs/dtsession/SmSave.c b/cde/programs/dtsession/SmSave.c index 3df9e1554..f86c291ee 100644 --- a/cde/programs/dtsession/SmSave.c +++ b/cde/programs/dtsession/SmSave.c @@ -504,29 +504,36 @@ PruneSessionDirectory () */ char * tmpName; - char * tmp; + int len, tfd; - tmpName = (char *) XtMalloc (strlen (smGD.restoreSession) + 2); - sprintf (tmpName, "%s.", smGD.restoreSession); - if (strlen (tmpName) > 5) { - tmpName[4] = '.'; - tmpName[5] = '\000'; - } - tmp = (char *) tempnam (smGD.savePath, tmpName); + len = strlen(smGD.savePath) + strlen(smGD.restoreSession) + + strlen("XXXXXX") + 3; + tmpName = XtCalloc (1, len); + sprintf(tmpName, "%s/%s.XXXXXX", smGD.savePath, + smGD.restoreSession); - sprintf (saveDir, "%s/%s", smGD.savePath, smGD.restoreSession); + if ((tfd = mkstemp(tmpName)) == -1) + { + PrintErrnoError(DtError, smNLS.cantCreateDirsString); + } + else + { + close(tfd); + unlink(tmpName); - MoveDirectory (saveDir, tmp, False); - MoveDirectory (oldestDir, saveDir, False); + sprintf (saveDir, "%s/%s", + smGD.savePath, smGD.restoreSession); - sprintf (clientDB, "%s/%s/%s", smGD.savePath, - smGD.restoreSession, SM_CLIENT_FILE2); + MoveDirectory (saveDir, tmpName, False); + MoveDirectory (oldestDir, saveDir, False); - ExecuteDiscardCommands (clientDB); + sprintf (clientDB, "%s/%s/%s", smGD.savePath, + smGD.restoreSession, SM_CLIENT_FILE2); - MoveDirectory (tmp, saveDir, True); + ExecuteDiscardCommands (clientDB); - free (tmp); + MoveDirectory (tmpName, saveDir, True); + } XtFree (tmpName); } From db8280189d074e7fe62c1a31beceb0309e9e8f92 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 19:42:21 -0700 Subject: [PATCH 11/14] dtsession/SmSave: use absolute path to rm in system() --- cde/programs/dtsession/SmSave.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtsession/SmSave.c b/cde/programs/dtsession/SmSave.c index f86c291ee..ee849071d 100644 --- a/cde/programs/dtsession/SmSave.c +++ b/cde/programs/dtsession/SmSave.c @@ -558,7 +558,7 @@ PruneSessionDirectory () if (((stat (saveDir, &buf)) == 0) && S_ISDIR (buf.st_mode)) { - sprintf (clientDB, "rm -rf %s", saveDir); + sprintf (clientDB, "/bin/rm -rf %s", saveDir); SystemCmd (clientDB); sprintf (oldestDir, "%s/%s", smGD.savePath, From aa2daba4af0e59b2daebf478724ecd8e4870a68c Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 19:52:37 -0700 Subject: [PATCH 12/14] dtsession/SmUI: fix tainted var (CID 88216) --- cde/programs/dtsession/SmUI.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cde/programs/dtsession/SmUI.c b/cde/programs/dtsession/SmUI.c index c92ea588a..7885a0c64 100644 --- a/cde/programs/dtsession/SmUI.c +++ b/cde/programs/dtsession/SmUI.c @@ -907,9 +907,8 @@ CreateLockDialogWithCover( */ i = 0; envLog = getenv("LOGNAME"); - lockMessage = XtMalloc(100 + strlen(envLog)); - sprintf( - lockMessage, + lockMessage = XtCalloc(1, 100 + strlen(envLog)); + snprintf(lockMessage, 100 + strlen(envLog) - 1, ((char *)GETMESSAGE(18, 1, "Display locked by user %s.")), envLog); lockString = XmStringCreateLocalized(lockMessage); XtSetArg(uiArgs[i], XmNtopAttachment, XmATTACH_POSITION); i++; From 722cfc70ebb55d97264f89a93c9d9b63f6cf8da7 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 20:06:53 -0700 Subject: [PATCH 13/14] dtsession/SrvFile_io: fix CID's 88299 and 89441 --- cde/programs/dtsession/SrvFile_io.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cde/programs/dtsession/SrvFile_io.c b/cde/programs/dtsession/SrvFile_io.c index 237722bde..1fa77e540 100644 --- a/cde/programs/dtsession/SrvFile_io.c +++ b/cde/programs/dtsession/SrvFile_io.c @@ -228,10 +228,8 @@ char *palette) DEFAULT_PALETTE); } - if (path != NULL) - SRV_FREE(path); - if (palettePath != NULL) - SRV_FREE(palettePath); + SRV_FREE(path); + SRV_FREE(palettePath); return (paletteDef); @@ -372,6 +370,7 @@ ReadPaletteFile( error_value = 1; unlink(palettePath); SRV_FREE(fullPath); + close(fd); return((struct _palette *) NULL); } } From 4dae64c891869355f12a623852dccd7544289003 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 27 Dec 2014 20:09:09 -0700 Subject: [PATCH 14/14] dtsession/SrvPalette: fix CID 89227 --- cde/programs/dtsession/SrvPalette.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cde/programs/dtsession/SrvPalette.c b/cde/programs/dtsession/SrvPalette.c index e6f96e7c5..09275c0b9 100644 --- a/cde/programs/dtsession/SrvPalette.c +++ b/cde/programs/dtsession/SrvPalette.c @@ -665,7 +665,7 @@ convert_pixel_set( int i; char *converted; char *p; - int colormappingindex; + int colormappingindex = 0; const int colormapping [4][XmCO_MAX_NUM_COLORS] = { {0, 1, 2, 3, 4, 5, 6, 7}, /* XmCO_HIGH_COLOR */