dtlogin: Resolve some coverity issues, including those thought previously fixed
authorPeter Howkins <flibble@users.sf.net>
Sat, 28 Apr 2018 22:47:05 +0000 (23:47 +0100)
committerPeter Howkins <flibble@users.sf.net>
Sat, 28 Apr 2018 22:47:05 +0000 (23:47 +0100)
cde/programs/dtlogin/account.c
cde/programs/dtlogin/resource.c
cde/programs/dtlogin/session.c
cde/programs/dtlogin/verify.c
cde/programs/dtlogin/vgmain.c

index fbea9b20fb224ccaf2b36424be0d810e3da408ce..27f51ca0c2ffcfbf570956def5540797d2f2d390 100644 (file)
@@ -215,7 +215,7 @@ Account( struct display *d, char *user, char *line, pid_t pid,
      *       Currently, an unlimited number of foreign displays can log in.
      */
      
-    if (user) strncpy(u->ut_user, user, sizeof(u->ut_user));
+    if (user) snprintf(u->ut_user, sizeof(u->ut_user), "%s", user);
     if (line) {
 #ifdef _AIX
 /*
index 4314a6b4faa2c41a83a4a3d4f5463b49fafcc99f..70e2619cef560d7e325dc7e36bd965b08ca27ae4 100644 (file)
@@ -409,6 +409,7 @@ GetResource( char *name, char *class, int valueType, char **valuep,
     char       *type;
     XrmValue   value;
     char       *string, *new_string;
+    char       empty[] = "";
     char       str_buf[50];
     int        len;
 
@@ -422,8 +423,13 @@ GetResource( char *name, char *class, int valueType, char **valuep,
     }
     else
     {
-       string = default_value;
-       len = (string == NULL ? 0 : strlen (string));
+       if(default_value) {
+               string = default_value;
+               len = strlen (string);
+       } else {
+               string = empty;
+               len = 0;
+       }
     }
 
     Debug ("%s/%s value %*.*s\n", name, class, len, len, string);
index f5f45266a45cf7d8bf36e5056cd5551ae3916314..34332058cefab739f99ef7f04e07f4412df3f65b 100644 (file)
@@ -754,11 +754,8 @@ LoadAltDtsResources(struct display *d)
             Debug("LoadAltDtsResources- cant access %s.\n", resources);
             Debug("\t %s.  Falling back to C.\n", strerror(errno));
 
-            if (resources)
-           {
-               free (resources);
-               resources = NULL;
-           }
+           free (resources);
+           resources = NULL;
 
             resources = _ExpandLang(dirname[j], "C");
             if (access (resources, R_OK) != 0)
@@ -2073,7 +2070,7 @@ RunGreeter( struct display *d, struct greet_info *greet,
                 language = d->language;
 #endif /* ENABLE_DYNAMIC_LANGLIST */
 
-               if ( d->language && strlen(d->language) > 0 )
+               if (env && d->language && strlen(d->language) > 0 )
                  env = setLang(d, env, language);
            }
 
index af9f8fd12f5342bb9e4b26eb4a9b5bd5454b4054..414a505f3cf3fc22806e418ed0c74bba4b65dd93 100644 (file)
@@ -383,7 +383,7 @@ userEnv(
          langlist = languageList;
 #endif /* ENABLE_DYNAMIC_LANGLIST */
 
-        if (d->language && strlen(d->language) > 0)
+        if (env && d->language && strlen(d->language) > 0)
          env = setLang(d, env, langlist);
 
 #if 0 /* setting LC_ALL can cause undesirable side effects -- bf@hp */
index af6739150b350dd5ad825b39a15e1bb1bcc47a99..b51816ed132a8fc025187ca14773585c9178d479 100644 (file)
@@ -1557,7 +1557,8 @@ MakeGreeting( void )
         */
         
 
-       if ( strlen(greetInfo.labelString) == 0         ||
+       if ( !greetInfo.labelString                     ||
+            strlen(greetInfo.labelString) == 0         ||
             strcmp(greetInfo.labelString, "None") == 0 ||
             strcmp(greetInfo.labelString, "none") == 0 )