dticon: coverity fixes
authorPeter Howkins <flibble@users.sf.net>
Sat, 28 Apr 2018 19:33:44 +0000 (20:33 +0100)
committerPeter Howkins <flibble@users.sf.net>
Sat, 28 Apr 2018 19:33:44 +0000 (20:33 +0100)
cde/programs/dticon/fileIO.c
cde/programs/dticon/fileIODialog.c
cde/programs/dticon/process.c
cde/programs/dticon/utils.c

index b86235d3df1bbe3b337930b2cca63179aa7aa802..82a10ab71b5350a2c95464df4228f35aec895ea6 100644 (file)
@@ -254,7 +254,7 @@ Read_File(
   }
   else     /* wasn't in form "<host>:/<path>" 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 "<host>:/<path>" 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);
index 0e31126ea266923cb97cb0901ecbc6a320602e3f..dfe2f4bab8bc7f523e3fea2ba351e7c479d70a19 100644 (file)
@@ -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 &&
index 87c35eb3471fe7307e88f86eb7ddf73e692f0f75..1b308901b82c2b66dfb8cc764c8d5bc988ecd09b 100644 (file)
@@ -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';
index dd689f9407a528bc9b6e42d1205d94cd7298f702..868e16e7fd541aae17b631cb20307f41c961dc1d 100644 (file)
@@ -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.*/
 }