dtlogin: resolve more static analysis warnings
authorPeter Howkins <flibble@users.sf.net>
Sat, 27 Dec 2014 23:13:59 +0000 (23:13 +0000)
committerPeter Howkins <flibble@users.sf.net>
Sat, 27 Dec 2014 23:13:59 +0000 (23:13 +0000)
cde/programs/dtlogin/auth.c
cde/programs/dtlogin/choose.c
cde/programs/dtlogin/chooser.c
cde/programs/dtlogin/error.c
cde/programs/dtlogin/file.c
cde/programs/dtlogin/genauth.c
cde/programs/dtlogin/policy.c
cde/programs/dtlogin/session.c
cde/programs/dtlogin/vgcallback.c

index 366e4ead07bcebe1df90f3588cf3f5d656ddb31d..577558194504e2f09810b5bc8d43acad58b75010 100644 (file)
@@ -565,7 +565,7 @@ binaryEqual (char *a, char *b, unsigned short len)
        return 1;
 }
 
-int
+static void
 dumpBytes (unsigned short len, char *data)
 {
        unsigned short  i;
@@ -709,7 +709,7 @@ writeAuth (file, auth)
        dumpAuth (auth);        /* does Debug only */
     }
     
-    if (doWrite)
+    if (doWrite) {
         if (!XauWriteAuth (file, auth) || fflush (file) == EOF)  {
                 LogError(
                     ReadCatalog(MC_LOG_SET,MC_LOG_SRV_WRT,MC_DEF_LOG_SRV_WRT),
@@ -717,7 +717,11 @@ writeAuth (file, auth)
                 return 0;
         }
         else
+        {
                 return 1;
+        }
+    }
+    return 1;
 }
 
 static void
index ea902fcff56da4ce92dd60895bfe79ae91008d78..c600e518744c39eb7e4181ddc874909f9612dadc 100644 (file)
@@ -425,6 +425,7 @@ ProcessChooserSocket (
     }
 
     close (client_fd);
+    return 1;
 }
 
 void
index 37e617fc6fab3f4eb6523079dd370f44dc0a7cdf..86e4dbd6a42e083e92596842ce49629d00f2260a 100644 (file)
@@ -397,7 +397,6 @@ AddHostname (ARRAY8Ptr hostname, ARRAY8Ptr status, struct sockaddr *addr, int wi
        }
        if (!XdmcpAllocARRAY8 (&new->hostaddr, hostAddr.length))
        {
-           free ((char *) new->fullname);
            free ((char *) new);
            return 0;
        }
@@ -759,6 +758,9 @@ Choose (HostName *h)
            addr = (struct sockaddr *) &in_addr;
            len = sizeof (in_addr);
            break;
+        default:
+           fprintf (stderr, "Unhandled protocol family %d\n", family);
+           exit (REMANAGE_DISPLAY);
        }
        if ((fd = socket (family, SOCK_STREAM, 0)) == -1)
        {
index b60a628a4a14f93ab4c3a2b10a726252fe0a0e5c..1745b4c60e9a2b8f003558cffe62b015f0a3f940 100644 (file)
@@ -171,7 +171,8 @@ void
 TrimErrorFile( void )
 {
 
-    int  f1, f2;
+    int  f1 = -1;
+    int  f2 = -1;
     int  deleteBytes;
     
     char buf[BUFSIZ];
index 30e487c4d25584a5910ec1db5e795ada2c50da46..a12f73bbf80146335080a2729c83da87280179b6 100644 (file)
@@ -210,6 +210,7 @@ ParseDisplay( char *source,
        LogError(ReadCatalog(MC_LOG_SET,MC_LOG_MISS_TYPE,MC_DEF_LOG_MISS_TYPE),
                args[0]);
        freeArgs (args);
+        free(name);
        return 0;
     }
 
index 99d9f3c1d660be940ed6d32ec13f5b3b4f9c6aa0..357baf0bb4aea91d7949be3b5ff478cf6043a3c5 100644 (file)
@@ -478,6 +478,8 @@ InitCryptoKey( void )
 
     }
     cryptoInited = 1;
+
+    return 1;
 }
 
 #endif /* HASXDMAUTH */
index b785494806c29f812003540bbd35997088d0b3d7..3906606232af5536917f0d5eae514580aec468d4 100644 (file)
@@ -164,14 +164,16 @@ Willing(
 #endif
     ret = AcceptableDisplayAddress (addr, connectionType, type);
     if (!ret)
-       sprintf (statusBuf, "Display not authorized to connect");
+       snprintf (statusBuf, sizeof(statusBuf), "Display not authorized to connect");
     else
-       sprintf (statusBuf, "%s", WillingMsg());
+       snprintf (statusBuf, sizeof(statusBuf), "%s", WillingMsg());
 #if 0
-       sprintf (statusBuf, "host %s", localHostname());
+       snprintf (statusBuf, sizeof(statusBuf), "host %s", localHostname());
 #endif
+    /* enforce termination */
+    statusBuf[255] = '\0';
 
-    status->length = strlen (statusBuf);
+    status->length = strlen(statusBuf);
     status->data = (CARD8Ptr) malloc (status->length);
     if (!status->data)
        status->length = 0;
index 0693e45cd31e925c2eb408ad94d8392563f70c49..9a42844737f8f62f0cf4b8aa6723c4a205c404f0 100644 (file)
@@ -644,7 +644,7 @@ int
 LoadXloginResources( struct display *d )
 {
     char       cmd[1024];
-    char       *language="";
+    char       *language = NULL;
     char       *lang_key="";
     char       *authority="";
     char       *auth_key="";
@@ -1943,6 +1943,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
@@ -2126,7 +2128,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 +2139,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]);
index 934fd99561db4a39d5dc6f0ee9ed9ebfe699063c..b0863a20e5e9206fa44cbc98e902e88138c2993b 100644 (file)
@@ -1242,6 +1242,8 @@ RequestCB(
                                       XmFONTLIST_DEFAULT_TAG));
               string = XmStringConcat(xmstr, XmStringSeparatorCreate());
             }
+
+            fclose(fp);
           }
           else
           {