libtt: Resolve coverity warnings
authorPeter Howkins <flibble@users.sf.net>
Wed, 11 Apr 2018 18:31:03 +0000 (19:31 +0100)
committerPeter Howkins <flibble@users.sf.net>
Wed, 11 Apr 2018 18:31:03 +0000 (19:31 +0100)
cde/lib/tt/bin/ttauth/process.c
cde/lib/tt/bin/ttdbserverd/dm_server.C
cde/lib/tt/bin/tttar/tttar_file_utils.C
cde/lib/tt/lib/api/c/api_file.C
cde/lib/tt/lib/api/c/api_message.C
cde/lib/tt/lib/mp/mp_auth.C
cde/lib/tt/mini_isam/iserase.c
cde/lib/tt/mini_isam/isfcb.c
cde/lib/tt/mini_isam/isgarbage.c
cde/lib/tt/mini_isam/isrename.c
cde/lib/tt/mini_isam/isstart.c

index 1a217182f8d988c87d57211df8967c59ab761a61..65bacdffeb3873a7be01bd00a0aef78a2fd5779d 100644 (file)
@@ -231,10 +231,12 @@ static int original_umask = 0;            /* for restoring */
 static char *
 copystring(const char *src)
 {
-    int len = strlen (src);
+    int len;
     char *cp;
 
     if (!src) return NULL;
+    
+    len = strlen (src);
     cp = malloc (len + 1);
     if (cp)
        strcpy (cp, src);
@@ -1256,6 +1258,7 @@ do_add(char *inputfilename, int lineno, int argc, char *argv[])
                prefix (inputfilename, lineno);
                fprintf (stderr,
               "protodata_hex contains odd number of or non-hex characters\n");
+               free(protodata);
                return (1);
            }
        }
@@ -1290,6 +1293,7 @@ do_add(char *inputfilename, int lineno, int argc, char *argv[])
            fprintf (stderr,
               "authdata_hex contains odd number of or non-hex characters\n");
            free (protodata);
+           free (authdata);
            return (1);
        }
     }
index 0b4eb9c804a59867f3be00e23966605de8e1f550..43ccae017d474c878ec8bb762facb937b74e3f24 100644 (file)
@@ -239,6 +239,7 @@ _tt_get_record(int prefix_len, const char *prefix, const char *db_name, char *re
        isfd = stat(dblong,&statbuf);
        if (-1==isfd) {
                _tt_syslog(errstr, LOG_ERR, "%s: %m", dblong);
+               free(db);
                free(dblong);
                return 0;
        }
@@ -300,6 +301,7 @@ _tt_write_record(int prefix_len, const char *prefix, const char *db_name,
        isfd = stat(dblong,&statbuf);
        if (-1==isfd) {
                _tt_syslog(errstr, LOG_ERR, "%s: %m", dblong);
+               free(db);
                free(dblong);
                return 0;
        }
index 0770986bf4966eaaa8d8150190dbdd34e07b3ca4..790bfb297607cbfa72a7a0df3ae3815084552e95 100644 (file)
@@ -248,6 +248,7 @@ realtrees( _Tt_string_list_ptr paths, bool_t follow_symlinks )
                                        strncat( resolved_path_buf,
                                                 base, MAXPATHLEN - len );
                                }
+                               free(dir);
                        }
                } else {
                        resolved_path = _tt_get_realpath( (char *)path,
index 643cc7fbd6db7b17e8eb8cc3f7f45a434f683b5b..3ab775b05ec6fdc358ebd78d91cf515214fef05d 100644 (file)
@@ -426,9 +426,8 @@ _ttds_file_server(const char *filename, const char **hostname)
        _Tt_string      hostname_s;
        _Tt_string      partition;
        _Tt_string      network_path;
-       
-       *hostname = "";
-       if (filename==0 || hostname==0) {
+
+       if (filename == NULL || hostname == NULL) {
                return TT_ERR_POINTER;
        }
        filename_s = filename;
index ae1c98aee8ea8ba92ea525f4745672d0199cfb3f..fddcbc1840d856eb168d55567a4ef084b66322e4 100644 (file)
@@ -2476,7 +2476,7 @@ _tt_message_context_bval(Tt_message m, const char *slotname,
        }
        *len = value.len();
        *val = (unsigned char *)_tt_strdup( value, *len );
-       if (val == 0) {
+       if (*val == NULL) {
                return TT_ERR_NOMEM;
        }
        return TT_OK;
index 458d57eb54e368b7fe8b92ca7a5187824467f980..b4babaf2b600daaba9c67a394923171fdec7c191 100644 (file)
@@ -291,6 +291,8 @@ write_auth_file(char *filename)
     else
       (void) unlink(tmpnam);
 
+    free(tmpnam);
+
     return TT_OK;
 }
 Tt_status _Tt_auth::
@@ -306,7 +308,10 @@ retrieve_auth_cookie()
       return TT_AUTHFILE_ENTRY_MISSING;
 
     buff = (char*) malloc(entry->auth_data_length + 1);
-    if (NULL == buff) return TT_ERR_NOMEM;
+    if (NULL == buff) {
+        _tt_FreeAuthFileEntry(entry);
+        return TT_ERR_NOMEM;
+    }
 
     strncpy(buff, entry->auth_data, entry->auth_data_length);
     buff[entry->auth_data_length] = '\0';
index 32688e176ee303568b212ba7d2f4943d453ea9a6..667ed1a72b72bd0ea4ea60e71c89b378b7c8c0a6 100644 (file)
@@ -159,7 +159,7 @@ _unlink_datfile(isfname)
 {
     char       namebuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makedat_isfname(namebuf);
 
     (void)unlink(namebuf);
@@ -172,7 +172,7 @@ _unlink_indfile(isfname)
 {
     char       namebuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makeind_isfname(namebuf);
 
     (void)unlink(namebuf);
@@ -185,7 +185,7 @@ _unlink_varfile(isfname)
 {
     char       namebuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makevar_isfname(namebuf);
 
     (void)unlink(namebuf);
index 375b3a474c0902f6c2a559a4b46b9e6077015bd8..8d58957ab52ee91b20a960b54dde881168d74ab1 100644 (file)
@@ -197,8 +197,11 @@ _isfcb_open(isfname, errcode)
      *  Open the UNIX file for .rec file.
      */
     if ((dat_fd = _open_datfile (isfname, &rdonly)) == -1 || errno == EMFILE) {
-       _amseterrcode(errcode, errno);
-       return (NULL);
+        _amseterrcode(errcode, errno);
+        if(dat_fd != -1) {
+            close(dat_fd);
+        }
+        return (NULL);
     }
 
     /*
@@ -640,7 +643,7 @@ _create_datfile(isfname)
        int     fd;
        char    namebuf[MAXPATHLEN];
 
-       (void) strcpy(namebuf, isfname);
+       snprintf(namebuf, sizeof(namebuf), "%s", isfname);
        _makedat_isfname(namebuf);
        
        fd = open (namebuf, O_CREAT | O_EXCL | O_RDWR, 0666);
@@ -663,7 +666,7 @@ _create_indfile(isfname)
        int     fd;
        char    namebuf[MAXPATHLEN];
 
-       (void) strcpy(namebuf, isfname);
+       snprintf(namebuf, sizeof(namebuf), "%s", isfname);
        _makeind_isfname(namebuf);
 
        fd = open (namebuf, O_CREAT | O_EXCL | O_RDWR, 0666);
@@ -686,7 +689,7 @@ _create_varfile(isfname)
        int     fd;
        char    namebuf[MAXPATHLEN];
 
-       (void) strcpy(namebuf, isfname);
+       snprintf(namebuf, sizeof(namebuf), "%s", isfname);
        _makevar_isfname(namebuf);
 
        fd = open (namebuf, O_CREAT | O_EXCL | O_RDWR, 0666);
@@ -709,7 +712,7 @@ _remove_datfile(isfname)
 {
     char       namebuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makedat_isfname(namebuf);
 
     (void) unlink(namebuf);
@@ -727,7 +730,7 @@ _remove_indfile(isfname)
 {
     char       namebuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makeind_isfname(namebuf);
 
     (void) unlink(namebuf);
@@ -745,7 +748,7 @@ _remove_varfile(isfname)
 {
     char       namebuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makevar_isfname(namebuf);
 
     (void) unlink(namebuf);
@@ -766,7 +769,7 @@ _open_datfile(isfname, rdonly)
     char       namebuf[MAXPATHLEN];
     int                ret;
 
-    (void) strcpy(namebuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
     _makedat_isfname(namebuf);
 
     if ((ret = open (namebuf, O_RDWR)) != -1) {
@@ -797,7 +800,7 @@ _open_indfile(isfname, rdonly)
        int     fd;
        char    namebuf[MAXPATHLEN];
 
-       (void) strcpy(namebuf, isfname);
+       snprintf(namebuf, sizeof(namebuf), "%s", isfname);
        _makeind_isfname(namebuf);
 
        fd = open (namebuf, (rdonly==TRUE)?O_RDONLY:O_RDWR);
@@ -821,7 +824,7 @@ _open_varfile(isfname, rdonly)
        int     fd;
        char    namebuf[MAXPATHLEN];
 
-       (void) strcpy(namebuf, isfname);
+       snprintf(namebuf, sizeof(namebuf), "%s", isfname);
        _makevar_isfname(namebuf);
 
        fd = open (namebuf, (rdonly==TRUE)?O_RDONLY:O_RDWR);
@@ -867,7 +870,7 @@ _open2_indfile(fcb)
     if (fcb->indfd != -1)
        return (ISOK);
 
-    (void) strcpy(namebuf, fcb->isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", fcb->isfname);
     _makeind_isfname(namebuf);
 
     (void)fstat(fcb->datfd, &buf);
index c270e5d95ef2aaa7d7f8801ad76c3663753ec935..f227ccb5eb3c844b84f57f4163b20e6428ef0f06 100644 (file)
@@ -42,8 +42,7 @@ isgarbage(char * isfname)
        struct stat             statbuf;
        int                     count = 0,i;
 
-       (void)strcpy(isfname2, isfname);
-       (void)strcat(isfname2, "~");
+       snprintf(isfname2, sizeof(isfname2), "%s~", isfname);
 
        if ((isfd = isopen(isfname, ISEXCLLOCK + ISINPUT)) == ISERROR) {
                goto ERROR;
index 42126d4913472272c61ae20de11c25a93264daf9..73cdeb3078d7dfa1ea6332ba96522b422ba7e075 100644 (file)
@@ -130,7 +130,7 @@ isrename(oldname, newname)
      * still thinks that the file exists for a few seconds.
      */
 
-    (void)strcpy(datfname, oldname);
+    snprintf(datfname, sizeof(datfname), "%s", oldname);
     _makedat_isfname(datfname);
     (void)unlink(datfname);
 
@@ -218,16 +218,16 @@ _rename_datfile(isfname, newname)
     char       namebuf[MAXPATHLEN];
     char       newbuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
-    (void) strcpy(newbuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
+    snprintf(newbuf, sizeof(newbuf), "%s", isfname);
 
     /*
      * Replace the last element of the old path with newname.
      */
     _removelast(newbuf);
     if (strcmp(newbuf, "/") != 0)
-       (void) strcat(newbuf, "/");
-    (void)strcat(newbuf, newname);
+        snprintf(newbuf, sizeof(newbuf),  "%s/", newbuf);
+    snprintf(newbuf, sizeof(newbuf), "%s%s", newbuf, newname);
 
     _makedat_isfname(namebuf);
     _makedat_isfname(newbuf);
@@ -243,16 +243,16 @@ _rename_indfile(isfname, newname)
     char       namebuf[MAXPATHLEN];
     char       newbuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
-    (void) strcpy(newbuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
+    snprintf(newbuf, sizeof(newbuf), "%s", isfname);
 
     /*
      * Replace the last element of the old path with newname.
      */
     _removelast(newbuf);
     if (strcmp(newbuf, "/") != 0)
-       (void) strcat(newbuf, "/");
-    (void)strcat(newbuf, newname);
+        snprintf(newbuf, sizeof(newbuf), "%s/", newbuf);
+    snprintf(newbuf, sizeof(newbuf), "%s%s", newbuf, newname);
 
     _makeind_isfname(namebuf);
     _makeind_isfname(newbuf);
@@ -268,16 +268,16 @@ _rename_varfile(isfname, newname)
     char       namebuf[MAXPATHLEN];
     char       newbuf[MAXPATHLEN];
 
-    (void) strcpy(namebuf, isfname);
-    (void) strcpy(newbuf, isfname);
+    snprintf(namebuf, sizeof(namebuf), "%s", isfname);
+    snprintf(newbuf, sizeof(newbuf), "%s", isfname);
 
     /*
      * Replace the last element of the old path with newname.
      */
     _removelast(newbuf);
     if (strcmp(newbuf, "/") != 0)
-       (void) strcat(newbuf, "/");
-    (void)strcat(newbuf, newname);
+        snprintf(newbuf, sizeof(newbuf), "%s/", newbuf);
+    snprintf(newbuf, sizeof(newbuf), "%s%s", newbuf, newname);
 
     _makevar_isfname(namebuf);
     _makevar_isfname(newbuf);
index 84f0fad8bf8bc06bf5138db5ef382165d1efb6fd..0d112e9c4ca496fbdfa4375701b5dc23a473fa57 100644 (file)
@@ -591,8 +591,7 @@ _amstart(isfhandle, record, reclen, readmode,
     _amseterrcode(errcode, ISOK);
 
     /* Clean-up work. */
-    if (newcrp != NULL)
-       free(newcrp);
+    free(newcrp);
 
     _isdisk_commit();                       /* This will only check
                                              * that we unfixed all fixed