dtudcfonted: Resolve further coverity issues
authorPeter Howkins <flibble@users.sf.net>
Fri, 30 Mar 2018 21:09:47 +0000 (22:09 +0100)
committerPeter Howkins <flibble@users.sf.net>
Fri, 30 Mar 2018 21:09:47 +0000 (22:09 +0100)
20 files changed:
cde/programs/dtudcfonted/cpyw.c
cde/programs/dtudcfonted/cpyx.c
cde/programs/dtudcfonted/dtcpgpf/cpgpf.c
cde/programs/dtudcfonted/dtgpftobdf/gpftobdf.c
cde/programs/dtudcfonted/dtgpftocpf/gpftocpf.c
cde/programs/dtudcfonted/include/udcopt.h
cde/programs/dtudcfonted/include/udcutil.h
cde/programs/dtudcfonted/libfal/_fallcCT.c
cde/programs/dtudcfonted/libfal/_fallcDB.c
cde/programs/dtudcfonted/libfal/_fallcDefConv.c
cde/programs/dtudcfonted/libfal/_fallcFile.c
cde/programs/dtudcfonted/libfal/_fallcGenConv.c
cde/programs/dtudcfonted/libfal/_fallcGeneric.c
cde/programs/dtudcfonted/libfal/_falomGeneric.c
cde/programs/dtudcfonted/libfal/_faludcInf.c
cde/programs/dtudcfonted/libfal/falfont.c
cde/programs/dtudcfonted/libfal/readpcf.c
cde/programs/dtudcfonted/libfuty/getfname.c
cde/programs/dtudcfonted/libfuty/oakfuty.c
cde/programs/dtudcfonted/util.c

index 10227d6bce8db11bf154d9f2c7fd4456cf20de77..26a93023eda921c9aa32629643f518d3b1c4dca1 100644 (file)
@@ -137,8 +137,7 @@ String message;
     };
     static NButton BTN = NBUTTONS( buttons );
 
-    strcpy( bmsg, resource.mn_cpy_lost );
-    strcat( bmsg, message );
+    snprintf(bmsg, sizeof(bmsg), "%s%s", resource.mn_cpy_lost, message);
     SetItemLabel(&BTN, 0, resource.l_ok);
     SetItemLabel(&BTN, 1, resource.l_cancel);
     PopupNotice( cpyPtnW, bmsg, D_WARNING, &BTN, False, resource.l_warning_title);
index 8f37f7398c90b95927596f6fbce9482da9cb2528..216dc9368569cb6b121531bce5db59d95cc64bdc 100644 (file)
@@ -548,13 +548,13 @@ font_init()
        xlf_count = udc_count = sty_count = wls_count = hls_count = 0;
        if (FalGetFontList(NULL, FAL_FONT_MASK_DEFINED |
                        FAL_FONT_MASK_UNDEFINED, &fontlist) == FAL_ERROR) {
-               strcpy(err, FAL_ERROR_STR);
+               snprintf(err, sizeof(err), "%s", FAL_ERROR_STR);
                Error_message((Widget)NULL, err);
                return;
        }
        if(fontlist->num == 0) {
                FalFreeFontList(fontlist);
-               strcpy(err, resource.mn_no_font);
+               snprintf(err, sizeof(err), "%s", resource.mn_no_font);
                Error_message((Widget)NULL, err);
                return;
        }
@@ -622,15 +622,15 @@ font_init()
                                                (XtCallbackProc)udc_call, NULL);
        for (i=0; i < udc_count; i++) {
                if(udc[i] == FAL_FONT_CS0)
-                       sprintf(tmp, CS0);
+                       snprintf(tmp, sizeof(tmp), "%s", CS0);
                else if(udc[i] == FAL_FONT_CS1)
-                       sprintf(tmp, CS1);
+                       snprintf(tmp, sizeof(tmp), "%s", CS1);
                else if(udc[i] == FAL_FONT_CS2)
-                       sprintf(tmp, CS2);
+                       snprintf(tmp, sizeof(tmp), "%s", CS2);
                else if(udc[i] == FAL_FONT_CS3)
-                       sprintf(tmp, CS3);
+                       snprintf(tmp, sizeof(tmp), "%s", CS3);
                else
-                       sprintf(tmp, "Codeset %x?", udc[i]);
+                       snprintf(tmp, sizeof(tmp), "Codeset %x?", udc[i]);
                button1[i] = XmCreatePushButton(pull1, tmp, NULL, 0);
                XtManageChild(button1[i]);
                XtAddCallback(button1[i], XmNactivateCallback,
@@ -653,7 +653,7 @@ font_init()
        XtAddCallback(button, XmNactivateCallback,
                                                (XtCallbackProc)wls_call, NULL);
        for (i=0; i < wls_count; i++) {
-               sprintf(tmp, "%d", wls[i]);
+               snprintf(tmp, sizeof(tmp), "%d", wls[i]);
                button3[i] = XmCreatePushButton(pull3, tmp, NULL, 0);
                XtManageChild(button3[i]);
                XtAddCallback(button3[i], XmNactivateCallback,
@@ -665,7 +665,7 @@ font_init()
        XtAddCallback(button, XmNactivateCallback,
                                                (XtCallbackProc)hls_call, NULL);
        for (i=0; i < hls_count; i++) {
-               sprintf(tmp, "%d", hls[i]);
+               snprintf(tmp, sizeof(tmp), "%d", hls[i]);
                button4[i] = XmCreatePushButton(pull4, tmp, NULL, 0);
                XtManageChild(button4[i]);
                XtAddCallback(button4[i], XmNactivateCallback,
index ddfc5bcb170c8295a12a5c422b0d3a5f7dc8d91d..e4be254251dc2d1aca295794aafb6a259fbaf34a 100644 (file)
@@ -1153,8 +1153,8 @@ char              *output;
        char    fbuf[BUFSIZE], split[BUFSIZE] ;
        char    *ep, *pix_sz, *point_sz, *rsl_x, *av_width, *char_set ;
 
-       strcpy( fbuf, font ) ;
-       strcpy( split, font ) ;
+       snprintf( fbuf, sizeof(fbuf), "%s", font ) ;
+       snprintf( split, sizeof(split), "%s", font ) ;
        ep = fbuf ;
        ep += strlen( fbuf ) ;
        ep-- ;
index 26cecbad07b05e871c2fc96ef15d6225a427de46..c7d59d8fb5cc3be52324f1cac7e1609e509b4cd0 100644 (file)
@@ -289,7 +289,7 @@ char        *argv[];
        time(&clock);
        tm = localtime(&clock);
 
-       strcpy( tmbuf, asctime(tm) ) ;
+       snprintf( tmbuf, sizeof(tmbuf), "%s", asctime(tm) ) ;
 
        k = sprintf(bufp,"COMMENT    Created date : %s\n",tmbuf );
        bufp += k-1;
index 0a1af2e71a00cb75f4e1b1f5e148ab0278c724ab..dc1b15721065e1156fcd0b5d3be67bef74d11413 100644 (file)
@@ -570,7 +570,7 @@ FalGlyphRegion      *gr ;
        int             err_flg = 0;
        int             code_num;
        char    *tmp;
-       FalGIInf        *gi ;
+       FalGIInf        *gi = NULL;
        int             num_gi ;
        int             i, code ;
 
@@ -600,6 +600,9 @@ FalGlyphRegion      *gr ;
                }
            }   
        }
+
+       XFree(gi);
+
        if( !err_flg ) {
            for( i=0; i<num_gr; i++ ) {
                if( (code_num >= gr[i].start) && (code_num <= gr[i].end) )
index ce7c3687971aa2a5e39ce0cc733a552fa98d227f..5abe49964347b4e4cdbd537cd9645794d2232652 100644 (file)
@@ -42,8 +42,8 @@
 #define FONT_FILE_PARM 0
 
 #define        COMM_SNF_POPEN( permission, snf_file, out_file, ep, buf, command ) { \
-       strcpy( (buf), " -i " ) ; \
-       sprintf( (command), "%s %s > %s", bdftosnf, (buf), (out_file) ); \
+       snprintf( (buf), sizeof((buf)), " -i " ) ; \
+       snprintf( (command), sizeof((command)), "%s %s > %s", bdftosnf, (buf), (out_file) ); \
 }
 #define        COMM_SNF_FILEVERSION( snf_fd, finf, buf, permission ) { \
        read( (snf_fd), (buf), sizeof(FontInfoRec) ); \
 #define        COMM_SETSTYLE_TO_FONTDATA( style, key, mask ) { \
        if( style ) { \
            char        stylebuf[ BUFSIZE ] ; \
-           strcpy( stylebuf, style ) ; \
+           snprintf( stylebuf, sizeof(stylebuf), "%s", style ) ; \
            key.style.name = stylebuf ; \
            mask |= FAL_FONT_MASK_STYLE_NAME ; \
        } \
            }\
        } \
        if ( ( (srch_path) = getenv( DTUDCFONTS ) ) == NULL ) { \
-           sprintf( (list_d), "%s/%s", DTUDCFONTSLISTDIR, (list_file) ); \
-           sprintf( (list_c), "%s/C/%s", DTUDCFONTSLISTDIR, (list_file) ); \
-           sprintf( (list_l), "%s/%s/%s", DTUDCFONTSLISTDIR, (locale), (list_file) ); \
+           snprintf( (list_d), sizeof(list_d), "%s/%s", DTUDCFONTSLISTDIR, (list_file) ); \
+           snprintf( (list_c), sizeof(list_c), "%s/C/%s", DTUDCFONTSLISTDIR, (list_file) ); \
+           snprintf( (list_l), sizeof(list_l), "%s/%s/%s", DTUDCFONTSLISTDIR, (locale), (list_file) ); \
        } else { \
-           sprintf( (list_d), "%s/%s", (srch_path), (list_file) ); \
-           sprintf( (list_c), "%s/C/%s", (srch_path), (list_file) ); \
-           sprintf( (list_l), "%s/%s/%s", (srch_path), (locale), (list_file) ); \
+           snprintf( (list_d), sizeof(list_d), "%s/%s", (srch_path), (list_file) ); \
+           snprintf( (list_c), sizeof(list_c), "%s/C/%s", (srch_path), (list_file) ); \
+           snprintf( (list_l), sizeof(list_l), "%s/%s/%s", (srch_path), (locale), (list_file) ); \
        } \
 }
 
index 2ce7c701abed50c136ab53d73bbc2b5966b3f126..9cd911b213e0c5a4f3a3bdce30b8f2e7b5947f63 100644 (file)
@@ -114,7 +114,7 @@ static      char    *udc_font_sp ;
 }
 
 #define GETXLFDELMSTR( sp, xlfdname, elm_num ) { \
-       strcpy( udc_font_str_buffer, (xlfdname) ) ; \
+       snprintf( udc_font_str_buffer, sizeof(udc_font_str_buffer), "%s", (xlfdname) ) ; \
        udc_font_sp = udc_font_str_buffer ; \
        udc_font_elm_cnt = 0 ;\
        while(*udc_font_sp){\
@@ -137,7 +137,7 @@ static      char    *udc_font_sp ;
 }
 
 #define GETCHARSETSTR( char_set, xlfdname ) { \
-       strcpy( udc_font_str_buffer, (xlfdname) ) ; \
+       snprintf( udc_font_str_buffer, sizeof(udc_font_str_buffer), "%s", (xlfdname) ) ; \
        POINTXLFDELM( (char_set), udc_font_str_buffer, XLFD_ELM_CHARSET_REGISTRY ) ; \
        (char_set)++ ; \
 }
index d4275e72142cc0cba06aa16f054e5fb16a8796b5..da1dc77c706500b6bc75631be2e90ff095d09644 100644 (file)
@@ -413,7 +413,7 @@ _fallcParseCharSet(charset)
     if (charset->name) {
        charset->xrm_name = falrmStringToQuark(charset->name);
 
-       strcpy(buf, charset->name);
+       snprintf(buf, sizeof(buf), "%s", charset->name);
        if (ptr = strchr(buf, ':'))
            *ptr = '\0';
        charset->xrm_encoding_name = falrmStringToQuark(buf);
index 747f18943f36ee4070bec928b0bbbd04443712ab..1803833686dc71fd84ba99a55b30008d0bc8243d 100644 (file)
@@ -478,7 +478,7 @@ static int
 append_value_list()
 {
     char **value_list = parse_info.value;
-    char *value;
+    char *value = NULL;
     int value_num = parse_info.value_num;
     int value_len = parse_info.value_len;
     char *str = parse_info.buf;
@@ -533,9 +533,9 @@ append_value_list()
     if(value_list){
        Xfree((char **)value_list);
     }
-    if(value){
-       Xfree(value);
-    }
+
+    Xfree(value);
+
     parse_info.value = (char **)NULL;
     parse_info.value_num = 0;
     parse_info.value_len = 0;
index 73f54da833038b5eda25ab529c2056e079a59f39..1b4a5271069f6faa9c2dc1fdc5e3287da80573c4 100644 (file)
@@ -271,6 +271,8 @@ create_conv(methods)
     if (conv == NULL)
        return (XlcConv) NULL;
 
+    conv->state = NULL;
+
     state = (State) Xmalloc(sizeof(StateRec));
     if (state == NULL)
        goto err;
index a391a47414705721f21855b0749e010e47074271..1e237807902df5fcd511f0e6812a1535af778667 100644 (file)
@@ -289,10 +289,10 @@ _fallcResolveLocaleName(lc_name, full_name, language, territory, codeset)
     }
 
     if(name != NULL){
-       strcpy(buf, name);
+       snprintf(buf, sizeof(buf), "%s", name);
        Xfree(name);
     }else{
-       strcpy(buf, lc_name);
+       snprintf(buf, sizeof(buf), "%s", lc_name);
     }
     if(full_name != NULL){
        strcpy(full_name, buf);
index acca61559dab399fb4a3406729ae27b92c3ee882..ec690b3939bc930fc7579beffab1ae524abd262a 100644 (file)
@@ -1489,7 +1489,7 @@ mbtocs(conv, from, from_left, to, to_left, args, num_args)
     XlcSide side;
 
     CodeSet codeset = NULL;
-    XlcCharSet charset;
+    XlcCharSet charset = NULL;
     ParseInfo parse_info;
     XPointer p;
 
index 287dd1e413dc9b6ece5b8edbb58b033307b91c7d..30f8c06e3b147b4d09a1514c2849dea81c26dd01 100644 (file)
@@ -546,7 +546,7 @@ XLCdGenericPart *gen;
                 Xfree(charsetd->encoding_name);
             }
 */
-            tmp = (char *)Xmalloc(strlen(value[0]+1));
+            tmp = (char *)Xmalloc(strlen(value[0]) + 1);
             strcpy(tmp,value[0]);
             charsetd->encoding_name = tmp;
             charsetd->xrm_encoding_name =
index 5cc7bbabdb3e4d8f7b306f42e7bb027bc8af46c8..8ba835a0c3dd20d0c4b0040c8dc51e7fc1cc57e9 100644 (file)
@@ -726,7 +726,7 @@ parse_omit_name(oc, font_data, pattern)
        }
     }
 
-    strcpy(buf, pattern);
+    snprintf(buf, sizeof(buf), "%s", pattern);
     length = strlen(pattern);
     last = buf + length - 1;
     if (length > 1 && *last == '*' && *(last - 1) == '-') {
index f41e2a16a5ccc96ed2a6fb73b0397d0e6ea4f70b..b6437320fe052f293d69a6c45a93f7fa7726bfa1 100644 (file)
@@ -331,6 +331,7 @@ char    *charsetname;
             if( !_fallcCompareISOLatin1(font_data[i].name,charset_str)){
                 for(k=0;k<font_data[i].scopes_num;k++){
                    if( gi_to_vgi(gi,vgi,&(font_data[i].scopes[k])) == True){
+                       XFree(font_data);
                        return(True);
                     }
                }
@@ -341,6 +342,7 @@ char    *charsetname;
     free_fontdata(font_data);
 */
     *vgi = gi;
+    XFree(font_data);
     return(True);
 }
 
@@ -607,12 +609,14 @@ char    *charsetname;
             for(k=0;k<font_data[i].scopes_num;k++){
                if( vgi_to_gi(glyph,vglyph,&(font_data[i].scopes[k])) == True){
                    strcpy(charsetname,font_data[i].name);
+                   XFree(font_data);
                    return(True);
                 }
            }
         }
     }
     *glyph = vglyph;
+    XFree(font_data);
     return(True);
 }
 int
index 7b0c3769429d94c2c16893656aa7e6c6f8a0abfc..51577730ac864b255e06ce2aa54317351b61d3f6 100644 (file)
@@ -274,6 +274,7 @@ int lockflag;
                    fal_utyerror = _FAL_OPEN_ER;
                    fal_utyderror = errno;
                    fal_utyerrno |= (FAL_FUNCNUM_OPNFNT<<8) ;
+                   close( fd );
                    return (FalFontID)FAL_ERROR;
                }
        } else {
@@ -3086,7 +3087,7 @@ unsigned int      *glidx ;
                            return      FAL_ERROR;
                    }
                    GETCHARSETSTR( char_set, tmp_data.xlfdname ) ;
-                   strcpy( charset_name, char_set ) ;
+                   snprintf( charset_name, sizeof(charset_name), "%s", char_set ) ;
                }
 
                /*
index 2d19c6baf4825fd7bae22c140bb513abddcb50c6..1a214cab7a9dab1ac0c542f942332ab3e46376c7 100644 (file)
@@ -848,6 +848,7 @@ FalFontData         *databuff ;
        }else{
                set_errfile_str( fal_err_file, finf->fname ) ;
                fal_utyerrno = FAL_ERR_PROP_FNAME ;
+               free(fnt);
                return( _FAL_TRY_NEXT ) ;
        }
 
index a0b3bd97f69640b48f5814f0c4671a955f890a81..0193989b830163430d553aac9d134ec13f212c98 100644 (file)
@@ -1142,7 +1142,7 @@ char      **fontname ;
                    ep++ ;
                }
                *ep = '\0' ;
-               strcpy(fntbuf, sp) ;
+               snprintf(fntbuf, sizeof(fntbuf), "%s", sp) ;
                getstat |= 0x01 ;
                fclose( fp );
                if (head.snf_file != NULL) {
index 5d51eee83ff70bad9ebc5d91b3a2cedc34704ec7..9c28312402a95777388c43e8654d415e302a9515 100644 (file)
@@ -1638,7 +1638,7 @@ char      *path;
 char   *cmd;
 #endif
 {
-       char    *cmd_path;
+       char    *cmd_path = NULL;
        struct stat     st;
        char    *end;
        char    chr_sv;
@@ -1660,7 +1660,7 @@ char      *cmd;
                    if( st.st_mode & S_IFREG ) {
                        cmd_path = realloc( cmd_path, strlen( cmd_path ) + 1 );
                        return  cmd_path;
-                   } else      continue ;
+                   }
                }
                FreeString( cmd_path ) ;
        }
index 7eb639faf13b45e193243999fdc80b5582f64839..a0a3854c03b115fc0a3f159f804504a9aac45c18 100644 (file)
@@ -954,10 +954,7 @@ Widget *footer;
        if (strchr(buttons->items[i].label, buttons->items[i].mnemonic)){
            sprintf(buf, "%s", buttons->items[i].label);
        }else{
-           strcpy(buf, buttons->items[i].label);
-           strcat(buf, "(");
-           strcat(buf, &(buttons->items[i].mnemonic));
-           strcat(buf, ")");
+           snprintf(buf, sizeof(buf), "%s(%s)", buttons->items[i].label, &(buttons->items[i].mnemonic));
        }
        cs = XmStringCreateLocalized(buf);
        XtSetArg(arg[n],XmNmnemonic, buttons->items[i].mnemonic ); n++;