dtlogin: Two additional coverity fixes
[oweals/cde.git] / cde / programs / dtlogin / session.c
index 0693e45cd31e925c2eb408ad94d8392563f70c49..cf6ce6d1819c350e5e6742940bd36c94b2dfe6ce 100644 (file)
@@ -644,8 +644,6 @@ int
 LoadXloginResources( struct display *d )
 {
     char       cmd[1024];
-    char       *language="";
-    char       *lang_key="";
     char       *authority="";
     char       *auth_key="";
     char        *resources = NULL;
@@ -675,27 +673,6 @@ LoadXloginResources( struct display *d )
                auth_key = "XAUTHORITY=";
        }
 
-       if (d->language && strlen(d->language) > 0 ) {
-               language = strdup(d->language);
-               lang_key = "-D";
-       }
-
-       /*
-        *  replace any "-" or "." in the language name with "_". The C
-        *  preprocessor used by xrdb does not accept "-" or "." in a name.
-        */
-        
-       while ( (p = strchr(language, '-')) != NULL ) {
-           *p = '_';
-       }
-        
-       while ( (p = strchr(language, '.')) != NULL ) {
-           *p = '_';
-       }
-                   
-       free(language);
-
-
        Debug("LoadXloginResources - loading resource db from %s\n", resources);
        if((XresourceDB = XrmGetFileDatabase(resources)) == NULL)
           Debug("LoadXloginResources - Loading resource db from %s failed\n",
@@ -762,7 +739,7 @@ LoadAltDtsResources(struct display *d)
     if ( XrmGetResource(XresourceDB,
                    "Dtlogin*altDts",  "Dtlogin*AltDts",
                    &rmtype, &rmvalue ) ) {
-               strcpy(tempbuf,rmvalue.addr);
+               snprintf(tempbuf, sizeof(tempbuf), "%s", rmvalue.addr);
                i = atoi(tempbuf);
     }
 
@@ -790,18 +767,15 @@ LoadAltDtsResources(struct display *d)
                 Debug("\t %s.\n", strerror(errno));
            }
            else
-              strcpy(dirname[j], resources);
+              snprintf(dirname[j], sizeof(dirname[j]), "%s", resources);
        }
        else {
-            strcpy(dirname[j],resources);
+            snprintf(dirname[j], sizeof(dirname[j]), "%s", resources);
             Debug("LoadAltDtsResources- found resource dir %s\n", dirname[j]);
        }
 
-        if (resources)
-       {
-           free (resources);
-           resources = NULL;
-       }
+       free (resources);
+       resources = NULL;
     }
 
 
@@ -833,13 +807,13 @@ LoadAltDtsResources(struct display *d)
                    }
 
                     if (file_count == 0) {
-                        file_list = malloc (list_incr * sizeof(char **));
+                        file_list = malloc (list_incr * sizeof(char *));
                         num_allocated += list_incr;
                     }
                     if (file_count + 1 > num_allocated) {
                         num_allocated += list_incr;
                         file_list = realloc (file_list,
-                                             num_allocated * sizeof(char **));
+                                             num_allocated * sizeof(char *));
                     }
                     file_list[file_count] = strdup (res_file);
                     file_count++;
@@ -864,9 +838,9 @@ LoadAltDtsResources(struct display *d)
             * remove the trailing spaces 
             */
            if(strchr(rmvalue.addr,' '))
-               strcpy(tempbuf, strtok(rmvalue.addr," "));
+               snprintf(tempbuf, sizeof(tempbuf), "%s", strtok(rmvalue.addr," "));
            else
-               strcpy(tempbuf, rmvalue.addr);
+               snprintf(tempbuf, sizeof(tempbuf), "%s", rmvalue.addr);
 
            if ((strcmp(tempbuf, "True") == 0) || 
                 (strcmp(tempbuf, "TRUE") == 0))  {
@@ -1943,6 +1917,8 @@ RunGreeter( struct display *d, struct greet_info *greet,
     char       *path;
     struct greet_state state = {};
     int        notify_dt;
+    int                dupfp = -1;
+    int                dupfp2 = -1;
 
 #ifdef __PASSWD_ETC
 #  ifndef U_NAMELEN
@@ -2086,7 +2062,7 @@ RunGreeter( struct display *d, struct greet_info *greet,
            if ( d->langList && strlen(d->langList) > 0 )
                env = setEnv(env, LANGLIST,  d->langList);
 #if !defined (ENABLE_DYNAMIC_LANGLIST)
-           else if (languageList && strlen(languageList) > 0 )
+           else if (strlen(languageList) > 0 )
                env = setEnv(env, LANGLIST, languageList);
 #endif /* ENABLE_DYNAMIC_LANGLIST */
 
@@ -2126,7 +2102,8 @@ RunGreeter( struct display *d, struct greet_info *greet,
            * Writing to file descriptor 1 goes to response pipe instead.
            */
            close(1);
-           if(-1 == dup(response[1])) {
+            dupfp = dup(response[1]);
+           if(-1 == dupfp) {
                 perror(strerror(errno));
             }
            close(response[0]);
@@ -2136,7 +2113,8 @@ RunGreeter( struct display *d, struct greet_info *greet,
            * Reading from file descriptor 0 reads from request pipe instead.
            */
            close(0);
-           if(-1 == dup(request[0])) {
+            dupfp2 = dup(request[0]);
+           if(-1 == dupfp2) {
                 perror(strerror(errno));
             }
            close(request[0]);
@@ -2148,7 +2126,7 @@ RunGreeter( struct display *d, struct greet_info *greet,
             * figure out path to dtgreet...
             */
 
-           strcpy(msg, progName);
+           snprintf(msg, sizeof(msg), "%s", progName);
     
            if ((p = (char *) strrchr(msg, '/')) == NULL)
                strcpy(msg,"./");