This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Cygwin: lseek: return ESPIPE rather than EINVAL when called on a fifo


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=323b48b975e5b305a5aaa5046ef1dc655fb1deba

commit 323b48b975e5b305a5aaa5046ef1dc655fb1deba
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Wed Oct 10 13:20:04 2018 +0200

    Cygwin: lseek: return ESPIPE rather than EINVAL when called on a fifo
    
    Thanks to Henri for tracking this down:
    https://cygwin.com/ml/cygwin/2018-10/msg00062.html
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/fhandler.h       |  1 +
 winsup/cygwin/fhandler_fifo.cc |  8 ++++++++
 winsup/cygwin/release/2.11.2   | 13 +++++++++++++
 3 files changed, 22 insertions(+)

diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index b946ddd..2cc99d7 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -1237,6 +1237,7 @@ class fhandler_fifo: public fhandler_base_overlapped
 public:
   fhandler_fifo ();
   int open (int, mode_t);
+  off_t lseek (off_t offset, int whence);
   int close ();
   int dup (fhandler_base *child, int);
   bool isfifo () const { return true; }
diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc
index 642949a..5733ec7 100644
--- a/winsup/cygwin/fhandler_fifo.cc
+++ b/winsup/cygwin/fhandler_fifo.cc
@@ -221,6 +221,14 @@ out:
   return res == success;
 }
 
+off_t
+fhandler_fifo::lseek (off_t offset, int whence)
+{
+  debug_printf ("(%D, %d)", offset, whence);
+  set_errno (ESPIPE);
+  return -1;
+}
+
 bool
 fhandler_fifo::wait (HANDLE h)
 {
diff --git a/winsup/cygwin/release/2.11.2 b/winsup/cygwin/release/2.11.2
new file mode 100644
index 0000000..c8d81d4
--- /dev/null
+++ b/winsup/cygwin/release/2.11.2
@@ -0,0 +1,13 @@
+What's new:
+-----------
+
+
+What changed:
+-------------
+
+
+Bug Fixes
+---------
+
+- Return ESPIPE rather than EINVAL from lseek on a fifo.
+  Addresses: https://cygwin.com/ml/cygwin/2018-10/msg00019.html


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]