]> git.eshelyaron.com Git - emacs.git/commitdiff
Don’t hang when copying FIFOs
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 18 Dec 2022 19:45:06 +0000 (11:45 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 18 Dec 2022 21:04:53 +0000 (13:04 -0800)
* src/fileio.c (Fcopy_file): Open the input file with O_NONBLOCK.
This prevents a hang if the input file is a FIFO.
If it’s a regular file O_NONBLOCK has no effect;
otherwise the file is soon rejected anyway.

src/fileio.c

index 92335b639cdea60a28ff6b0a76c707e2b5d3b357..a50f8d67c11e46272b96a06aea46ed2afe8e430e 100644 (file)
@@ -2219,7 +2219,7 @@ permissions.  */)
       report_file_error ("Copying permissions to", newname);
     }
 #else /* not WINDOWSNT */
-  ifd = emacs_open (SSDATA (encoded_file), O_RDONLY, 0);
+  ifd = emacs_open (SSDATA (encoded_file), O_RDONLY | O_NONBLOCK, 0);
 
   if (ifd < 0)
     report_file_error ("Opening input file", file);