From: Peter Howkins Date: Sat, 28 Apr 2018 19:33:44 +0000 (+0100) Subject: dticon: coverity fixes X-Git-Tag: 2.2.4a~56 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3193f130709b4ba836b8e5e56df8dc2365cf691f;p=oweals%2Fcde.git dticon: coverity fixes --- diff --git a/cde/programs/dticon/fileIO.c b/cde/programs/dticon/fileIO.c index b86235d3..82a10ab7 100644 --- a/cde/programs/dticon/fileIO.c +++ b/cde/programs/dticon/fileIO.c @@ -254,7 +254,7 @@ Read_File( } else /* wasn't in form ":/" so use name as is... */ { - strcpy(fname, fnameIn); + snprintf(fname, sizeof(fname), "%s", fnameIn); } /*** - if we got a NULL base_name, return FALSE ***/ @@ -277,7 +277,7 @@ Read_File( { Process_Clear(); Process_Resize(); - strcpy(last_fname, fname); + snprintf(last_fname, sizeof(last_fname), "%s", fname); ChangeTitle(); successFormat = FORMAT_NONE; return True; @@ -399,8 +399,7 @@ Read_File( #endif } else { - strcpy(dummy, fname); - strcat(dummy, "_m"); + snprintf(dummy, sizeof(dummy), "%s_m", fname); } #ifdef DEBUG if (debug) @@ -419,7 +418,7 @@ Read_File( mask_ret = 0; } - strcpy(last_fname, fname); + snprintf(last_fname, sizeof(last_fname), "%s", fname); ChangeTitle(); #ifdef DEBUG @@ -487,7 +486,7 @@ Write_File( } else /* wasn't in form ":/" so use name as is... */ { - strcpy(fname, fnameIn); + snprintf(fname, sizeof(fname), "%s", fnameIn); } @@ -496,7 +495,7 @@ Write_File( base_name = (base_name ? base_name + 1 : fname); } - strcpy(last_fname, fname); + snprintf(last_fname, sizeof(last_fname), "%s", fname); ChangeTitle(); #ifdef DEBUG @@ -556,8 +555,7 @@ Write_File( strcat(dummy, suffix); } else { - strcpy(dummy, fname); - strcat(dummy, "_m"); + snprintf(dummy, sizeof(dummy), "%s_m", fname); } /*** FOURTH, construct XImages for the shape and mask bitmaps ***/ mask_needed = False; @@ -977,26 +975,25 @@ SetFileIODialogInfo( void ) /* prepare to test */ tmp1 = strrchr(strOrig, '.'); - strcat(tmpStr, untitledStr); - strcat(tmpStr, ".m.pm"); + snprintf(tmpStr, sizeof(tmpStr), "%s.m.pm", untitledStr); tst=strcmp(last_fname, tmpStr); if ( tst==0 ) {/* untitled */ if ( tmp1 ) { /* previous string exists */ - if (currentTitle != SAVE_AS) strcat(newName, strOrig); - else { - strcat(newName, untitledStr); - strcat(newName, ".m.pm");} + if (currentTitle != SAVE_AS) { + snprintf(newName, sizeof(newName), "%s", strOrig); + } else { + snprintf(newName, sizeof(newName), "%s.m.pm", untitledStr); + } /* Update the FSB */ XmFileSelectionDoSearch(fileIODialog,(XmString)NULL); } else { /* First time arownd */ if (strOrig && strOrig[0]!='\0') - strcat(newName, strOrig); + snprintf(newName, sizeof(newName), "%s", strOrig); else { - strcat(newName, untitledStr); - strcat(newName, ".m.pm"); + snprintf(newName, sizeof(newName), "%s.m.pm", untitledStr); } XSync(dpy, 0); @@ -1019,7 +1016,9 @@ SetFileIODialogInfo( void ) */ c = tmp1[1]; tmp2 = strchr(tmp1, c); - strcpy(newName, tmp2); + if(tmp2) { + snprintf(newName, sizeof(newName), "%s", tmp2); + } /* make and insert the directory name */ ln = strlen(last_fname) - strlen(tmp1); diff --git a/cde/programs/dticon/fileIODialog.c b/cde/programs/dticon/fileIODialog.c index 0e31126e..dfe2f4ba 100644 --- a/cde/programs/dticon/fileIODialog.c +++ b/cde/programs/dticon/fileIODialog.c @@ -177,7 +177,7 @@ create_fileIODialog( void ) char *home; home = getenv("HOME"); - sprintf(buf, "%s/%s/icons", home, DtPERSONAL_CONFIG_DIRECTORY); + snprintf(buf, sizeof(buf), "%s/%s/icons", home, DtPERSONAL_CONFIG_DIRECTORY); if (0 == stat(buf, &sbuf) && S_IFDIR & sbuf.st_mode && diff --git a/cde/programs/dticon/process.c b/cde/programs/dticon/process.c index 87c35eb3..1b308901 100644 --- a/cde/programs/dticon/process.c +++ b/cde/programs/dticon/process.c @@ -214,7 +214,9 @@ Process_Save( void ) if (tmp1) { c = tmp1[1]; tmp2 = strchr(tmp1, c); - strcpy(newName, tmp2); + if(tmp2) { + snprintf(newName, sizeof(newName), "%s", tmp2); + } } if (strncmp(newName, untitledStr, 8) == 0 || last_fname[0] == '\0') Process_SaveAs(); else @@ -520,16 +522,13 @@ Process_Resize( void ) if ( DialogFlag == NEW ) { strcpy(undo_file, last_fname); - last_fname[0] = '\0'; SavedOnce = False; Backup_Icons(); /* for undo */ flag = DO_NOT_SAVE; Init_Icons(icon_width, icon_height, flag); if (!untitledStr) untitledStr = GETSTR(2,20, "UNTITLED"); - strcpy(last_fname, untitledStr); - strcat(last_fname, ".m.pm"); - last_fname[strlen(last_fname)] = '\0'; + snprintf(last_fname, sizeof(last_fname), "%s.m.pm", untitledStr); ChangeTitle(); Repaint_Exposed_Tablet(); Dirty = False; @@ -800,8 +799,14 @@ ConvertDropName( char *objects) tmp[0] = '\0'; if ((Boolean)XeIsLocalHostP(host)) { + char *slash = NULL; tmp[0] = ' '; - return (strdup(strchr(objects, '/'))); + slash = strchr(objects, '/'); + if(slash) { + return strdup(slash); + } else { + return NULL; + } } /* different host... get full path name */ @@ -842,8 +847,7 @@ Process_DropCheckOp( */ if (transferInfo->dropData->numItems > 0) { - strncpy (dropFileName, transferInfo->dropData->data.files[0], - MAX_FNAME); + snprintf(dropFileName, sizeof(dropFileName), "%s", transferInfo->dropData->data.files[0]); } else dropFileName[0] = '\0'; diff --git a/cde/programs/dticon/utils.c b/cde/programs/dticon/utils.c index dd689f94..868e16e7 100644 --- a/cde/programs/dticon/utils.c +++ b/cde/programs/dticon/utils.c @@ -1728,7 +1728,7 @@ Switch_FillSolids( void ) * * *X11***********************************************************************/ -int +void Select_New_Pen( int n ) { @@ -1755,7 +1755,7 @@ Select_New_Pen( XmToggleButtonSetState(StaticWid[new_pen], True, False); else XmToggleButtonSetState(DynamicWid[new_pen], True, False); - return 0; + return; } /*** un-set the previous choice ***/ @@ -2296,7 +2296,7 @@ SaveSession( void ) { tmpStr = GETSTR(16,24, "Couldn't save session to file"); tmpStr2 = (char *)XtMalloc(strlen(tmpStr) + strlen(path)+ 3); - sprintf(tmpStr2, "%s: %s\n", tmpStr, path); + snprintf(tmpStr2, sizeof(strlen(tmpStr) + strlen(path)+ 3), "%s: %s\n", tmpStr, path); _DtSimpleErrnoError(progName, DtError, NULL, tmpStr2, NULL); XtFree(tmpStr2); XtFree ((char *)path); @@ -2358,6 +2358,8 @@ SaveSession( void ) XtFree ((char *)path); XtFree ((char *)name); + close(fd); + /* Don't exit yet, SM needs time to get the new commandStr.*/ }