dtfile: coverity CIDs 88363,88405,89140,89612; insecure readlink
authorJon Trulson <jon@radscan.com>
Sun, 1 Apr 2018 19:43:48 +0000 (13:43 -0600)
committerJon Trulson <jon@radscan.com>
Sun, 1 Apr 2018 19:46:04 +0000 (13:46 -0600)
cde/programs/dtfile/Directory.c
cde/programs/dtfile/SharedProcs.c
cde/programs/dtfile/dtcopy/fsrtns.c

index f1113c71c817527762debe754637d915e5a7ac8d..460e3df7845d0bf46a29b1783e11f5e9a478690a 100644 (file)
@@ -825,7 +825,7 @@ ReadFileData(
    {
      while ((link_len = readlink(link_file_name, link_path, MAX_PATH)) > 0)
      {
-       link_path[link_len] = '\0';
+       link_path[link_len-1] = 0;
        link_list = (char **)XtRealloc((char *)link_list, sizeof(char *) *
                                       (link_count + 2));
 
@@ -1071,7 +1071,7 @@ ReadFileData2(
    {
      while ((link_len = readlink(link_file_name, link_path, MAX_PATH)) > 0)
      {
-       link_path[link_len] = NILL;
+       link_path[link_len - 1] = 0;
        link_list = (char **)XtRealloc((char *)link_list, sizeof(char *) *
                                       (link_count + 2));
 
index 51a10554c8626edbc4cd158669fd6c426228d071..63b7c1158f57bba294b18a5a1bbdd73ae13f993e 100644 (file)
@@ -236,7 +236,7 @@ _DtFollowLink (
 
    while ((link_len = readlink(file, link_path, MAXPATHLEN)) > 0)
    {
-      link_path[link_len] = '\0';
+      link_path[link_len-1] = 0;
 
       /* Force the link to be an absolute path, if necessary */
       if (link_path[0] != '/')
index 5532aca2a2dc028713f633b6ac515ac708ef6aa2..4956d5aed2f82e9216b41867dfeb2ad45261c3c9 100644 (file)
@@ -187,7 +187,7 @@ CopyLink(char *sourceP, char *targetP, int repl, struct stat *statP)
   } while (l < 0 && errno == EINTR);
   if (l < 0)
     return errno;
-  buf[l] = 0;
+  buf[l-1] = 0;
   if (symlink(buf, targetP) == 0)
     return 0;
   else if (errno != EEXIST || !repl)