libdtterm: Resolve coverity issues
authorPeter Howkins <flibble@users.sf.net>
Wed, 4 Apr 2018 18:48:23 +0000 (19:48 +0100)
committerPeter Howkins <flibble@users.sf.net>
Wed, 4 Apr 2018 18:48:23 +0000 (19:48 +0100)
cde/lib/DtTerm/TermPrim/TermPrim.c
cde/lib/DtTerm/TermPrim/TermPrimBufferWc.c
cde/lib/DtTerm/TermPrim/TermPrimGetPty-svr4.c
cde/lib/DtTerm/TermPrim/TermPrimSelect.c
cde/lib/DtTerm/TermPrim/TermPrimSetPty.c
cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c
cde/lib/DtTerm/TermPrim/TermPrimUtil.c
cde/lib/DtTerm/TermView/TermView.c
cde/lib/DtTerm/TermView/TermViewMenu.c
cde/lib/DtTerm/util/lineToData.c

index f9859aba87da4ce3cff2e61d464f1620d54b6888..fe9e98a522e68002f1822b10a8b02e579e19b6b7 100644 (file)
@@ -1227,7 +1227,7 @@ Initialize(Widget ref_w, Widget w, Arg *args, Cardinal *num_args)
                    tpd->boldTermFont =
                            _DtTermPrimRenderFontCreate(w, tw->term.boldFont);
                }
-                if (fontName) XFree(fontName) ;
+                XFree(fontName) ;
            }
        }
     }
@@ -1569,7 +1569,7 @@ InitOrResizeTermBuffer(Widget w)
                    ** we ran out of memory, no need try and resize the
                    ** term buffer
                    */
-                   resizeTermBuffer == False;
+                   resizeTermBuffer = False;
                }
            }
 
@@ -1893,7 +1893,6 @@ handleNonMaskableEvents(Widget w, XtPointer eventData, XEvent *event,
 {
     DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w;
     DtTermPrimData tpd = tw->term.tpd;
-    unsigned char *buffer = (unsigned char *) 0;
     int fd = tw->term.pty;
 
     switch (event->type) {
@@ -1925,11 +1924,6 @@ handleNonMaskableEvents(Widget w, XtPointer eventData, XEvent *event,
 
        /* reinstall the pty input select... */
        (void) _DtTermPrimStartOrStopPtyInput(w);
-           
-       /* free the old buffer... */
-       if (buffer) {
-           (void) XtFree((char *) buffer);
-       }
 
        if ((tpd->scroll.nojump.pendingScroll == 0) &&
                !moreInput(tw->term.pty)) {
@@ -2306,6 +2300,7 @@ _mergeEnv
     if (newEnv == NULL)
     {
        printf("L10n MALLOC ERROR\n");
+       return NULL;
     }
 
     /*
@@ -3749,8 +3744,7 @@ _DtTermPrimPutEnv(char *c1, char *c2)
     char buffer[BUFSIZ];
     char *c;
 
-    (void) strcpy(buffer, c1);
-    (void) strcat(buffer, c2);
+    snprintf(buffer, sizeof(buffer), "%s%s", c1, c2);
     c = XtMalloc(strlen(buffer) + 1);
     (void) strcpy(c, buffer);
     (void) putenv(c);
index 58b665e36922aedc8956301ddc3c9b0faad573d1..b3dd9ddaa09dfe8a937e177d9572756584fe1019 100644 (file)
@@ -257,7 +257,7 @@ _countWidth
             ** its a null character, but is still has a width for our
             ** purposes...
             */
-            charWidth == 1;
+            charWidth = 1;
            break;
           default:
             break;
index 5f79d298b9ae5faf97a05c52401cb34542d27a1f..a93975663c5e82c89fa9f74bcba0fa47828574b8 100644 (file)
@@ -283,8 +283,16 @@ SetupPty(char *ptySlave, int ptyFd)
 
 #else /* linux */
 
-    chown(ptySlave, getuid(), getgid());
-    chmod(ptySlave, 0622);
+    if(chown(ptySlave, getuid(), getgid()) == -1) {
+           (void) perror("Error performing chown()");
+           /* exit the subprocess */
+           return(1);
+    }
+    if(chmod(ptySlave, 0622) == -1) {
+           (void) perror("Error performing chmod()");
+           /* exit the subprocess */
+           return(1);
+    }
 #endif /* linux */
 
     /* success... */
index 24f5e8e8614dd084c6f3b766f8dc4f0e8766ca71..d352d1d418fc055a491be620e9367a724facc711 100644 (file)
@@ -787,7 +787,7 @@ setSelection
     selectColEnd = (selectInfo->end - 1) % (selectInfo->columns + 1);
 
     DebugF('c', 1,
-           fprintf(stderr, "set selection units: %d-%d  lines: %d-%d\n",
+           fprintf(stderr, "set selection units: %ld-%ld  lines: %d-%d\n",
            selectInfo->begin, selectInfo->end,
            selectLineBegin,
            selectLineEnd));
@@ -2952,6 +2952,8 @@ _DtTermPrimSelectPasteClipboard
      if (malloc_size != 0) XtFree(total_tmp_value);
 
      (void) _DtTermPrimCursorOn(w);
+     
+     return True;
 }
 
 /* This is the event interface for paste clipboard */
index 6f496fbe337caa0d1bf2e8ff9beb2211de24b661..15f43296549b7c19dfffd7918381deb3f750b4dd 100644 (file)
@@ -380,7 +380,6 @@ _DtTermPrimPtyGetDefaultModes()
                /* we got a valid reference tty... */
                DebugF('p', 3, fprintf(stderr,
                        ">>_DtTermPrimPtyGetDefaultModes() valid reference \"/dev/tty\"\n"));
-               refTty = tty;
                refValid = 1;
            }
        }
index 211fd2abd40d7854d5c4315a9097dc69b6cf4cb4..7b47a695b176bdebda2da5a0f788ef8549f0bd69 100644 (file)
@@ -411,8 +411,8 @@ UtmpEntryCreate(Widget w, pid_t pid, char *utmpLine)
     utPtr->ut_exit.e_exit = 2;
 #endif
                
-    (void) strncpy(utPtr->ut_user, (userName && *userName) ? userName : "????",
-           sizeof(utPtr->ut_user));
+    snprintf(utPtr->ut_user, sizeof(utPtr->ut_user),
+             "%s", (userName && *userName) ? userName : "????");
     (void) strncpy(utPtr->ut_line, utmpLine, sizeof(utPtr->ut_line));
     utPtr->ut_pid = pid;
     (void) time(&now);
@@ -529,7 +529,7 @@ UtmpEntryDestroy(Widget w, char *utmpLine)
     time_t now;
 
     ut.ut_type = USER_PROCESS;
-    (void) strncpy(ut.ut_line, utmpLine, sizeof(ut.ut_line));
+    snprintf(ut.ut_line, sizeof(ut.ut_line), "%s", utmpLine);
     (void) setutent();
     if (utPtr = getutline(&ut)) {
        utPtr->ut_type = DEAD_PROCESS;
index 6429ecaf447ae33c269c6a8b4567d5dc092ad768..88657572e855744d8c924c9cda13e512fb9dadbd 100644 (file)
@@ -620,7 +620,7 @@ _DtTermPrimLogFileCleanup
     for (logInfoTmp = logInfoHead->next; logInfoTmp;
            logInfoTmp = logInfoTmp->next) {
        DebugF('s', 10, fprintf(stderr,
-               ">>flushing logfile 0x%lx\n", logInfoTmp->logFile));
+               ">>flushing logfile %p\n", logInfoTmp->logFile));
        (void) fflush(logInfoTmp->logFile);
     }
     _DtTermProcessUnlock();
index 63c35af76cd57d5ab2bac731d2320e395f1b41ae..57f16f03f5a0a1d9f3b30ba763ff882ff9a09e6a 100644 (file)
@@ -1696,7 +1696,7 @@ GeometryManager(Widget child, XtWidgetGeometry *desired,
        c = "<unknown>";
     }
 
-    (void) printf("GeometryManager: %s widget (0x%lx) requesting geo change\n",
+    (void) printf("GeometryManager: %s widget (%p) requesting geo change\n",
            c, child);
 
     return(XtGeometryNo);
index f10484d5393055f2fe45b5e54e37c3904d544131..858adf4c6721c27e9447c9ce8f3bdad5fcd86549 100644 (file)
@@ -367,7 +367,7 @@ createSizeMenu
     }
 
     /* get a mnemonic for "Default"... */
-    (void) strcpy(buffer, (GETMESSAGE(NL_SETN_ViewMenu,1, "Default")));
+    snprintf(buffer, sizeof(buffer), "%s", (GETMESSAGE(NL_SETN_ViewMenu,1, "Default")));
 #ifdef NOTDEF
     for (c2 = buffer; *c2; c2++) {
        if (!strchr(mnemonics, *c2) && !isspace(*c2))
@@ -575,7 +575,7 @@ createFontMenu
                0, NULL, NULL, fontChangeCallback, (XtPointer) i1);
     }
 
-    (void) strcpy(buffer, (GETMESSAGE(NL_SETN_ViewMenu,9, "Default")));
+    snprintf(buffer, sizeof(buffer), "%s", (GETMESSAGE(NL_SETN_ViewMenu,9, "Default")));
     fontSizeToggles[i1] = _DtTermViewCreateToggleButton(submenu, buffer,
            0, NULL, NULL, defaultFontCallback, NULL);
     fontSizeTogglesDefault = i1;
index c1fae2d0f5c6bd366a7117605e8f5297f9aeb272..0240f2c33a5282a2a4b2afece343bd9ac71c27bf 100644 (file)
@@ -131,7 +131,7 @@ char **argv;
        }
 
        /* back up buffer... */
-       (void) strncpy(orig, buffer, BUFSIZ);
+       (void) strncpy(orig, buffer, BUFSIZ - 1);
 
        bufPtr = buffer;