[BACK]Return to xinstall.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / xinstall

Diff for /src/usr.bin/xinstall/xinstall.c between version 1.70 and 1.71

version 1.70, 2019/02/14 11:50:00 version 1.71, 2019/02/14 11:51:42
Line 222 
Line 222 
         struct timespec ts[2];          struct timespec ts[2];
         int devnull, from_fd, to_fd, serrno, files_match = 0;          int devnull, from_fd, to_fd, serrno, files_match = 0;
         char *p;          char *p;
           char *target_name = tempfile;
   
         (void)memset((void *)&from_sb, 0, sizeof(from_sb));          (void)memset((void *)&from_sb, 0, sizeof(from_sb));
         (void)memset((void *)&to_sb, 0, sizeof(to_sb));          (void)memset((void *)&to_sb, 0, sizeof(to_sb));
Line 311 
Line 312 
                         } else {                          } else {
                                 files_match = 1;                                  files_match = 1;
                                 (void)unlink(tempfile);                                  (void)unlink(tempfile);
                                   target_name = to_name;
                                   (void)close(temp_fd);
                         }                          }
                 }                  }
                 (void)close(to_fd);                  if (!files_match) {
                 to_fd = temp_fd;                          (void)close(to_fd);
                           to_fd = temp_fd;
                   }
         }          }
   
         /*          /*
Line 333 
Line 338 
         if ((gid != (gid_t)-1 || uid != (uid_t)-1) &&          if ((gid != (gid_t)-1 || uid != (uid_t)-1) &&
             fchown(to_fd, uid, gid)) {              fchown(to_fd, uid, gid)) {
                 serrno = errno;                  serrno = errno;
                 (void)unlink(tempfile);                  if (target_name == tempfile)
                 errx(1, "%s: chown/chgrp: %s", tempfile, strerror(serrno));                          (void)unlink(target_name);
                   errx(1, "%s: chown/chgrp: %s", target_name, strerror(serrno));
         }          }
         if (fchmod(to_fd, mode)) {          if (fchmod(to_fd, mode)) {
                 serrno = errno;                  serrno = errno;
                 (void)unlink(tempfile);                  if (target_name == tempfile)
                 errx(1, "%s: chmod: %s", tempfile, strerror(serrno));                          (void)unlink(target_name);
                   errx(1, "%s: chmod: %s", target_name, strerror(serrno));
         }          }
   
         /*          /*
Line 349 
Line 356 
         if (fchflags(to_fd,          if (fchflags(to_fd,
             flags & SETFLAGS ? fset : from_sb.st_flags & ~UF_NODUMP)) {              flags & SETFLAGS ? fset : from_sb.st_flags & ~UF_NODUMP)) {
                 if (errno != EOPNOTSUPP || (from_sb.st_flags & ~UF_NODUMP) != 0)                  if (errno != EOPNOTSUPP || (from_sb.st_flags & ~UF_NODUMP) != 0)
                         warnx("%s: chflags: %s", tempfile, strerror(errno));                          warnx("%s: chflags: %s", target_name, strerror(errno));
         }          }
   
         if (flags & USEFSYNC)          if (flags & USEFSYNC)

Legend:
Removed from v.1.70  
changed lines
  Added in v.1.71