]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
split: don’t trust st_size on /proc files
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 6 Apr 2024 22:18:04 +0000 (15:18 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 6 Apr 2024 22:18:28 +0000 (15:18 -0700)
* src/split.c (create): Don’t trust st_size == 0.

src/split.c

index 037960a5940b54ab410bcb8528b1c4ec35c5c3a8..f82a7f74b40160c27cbed0a4cc219220d5c5cefb 100644 (file)
@@ -489,10 +489,8 @@ create (char const *name)
       if (psame_inode (&in_stat_buf, &out_stat_buf))
         error (EXIT_FAILURE, 0, _("%s would overwrite input; aborting"),
                quoteaf (name));
-      bool regularish
-        = S_ISREG (out_stat_buf.st_mode) || S_TYPEISSHM (&out_stat_buf);
-      if (! (regularish && out_stat_buf.st_size == 0)
-          && ftruncate (fd, 0) < 0 && regularish)
+      if (ftruncate (fd, 0) < 0
+          && (S_ISREG (out_stat_buf.st_mode) || S_TYPEISSHM (&out_stat_buf)))
         error (EXIT_FAILURE, errno, _("%s: error truncating"), quotef (name));
 
       return fd;