about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/mach/hurd/fcntl.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d44ef731a6..bbd27444b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-11-10  Roland McGrath  <roland@frob.com>
+
+	* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Treat a struct flock with
+	l_start == 0 and l_len == 1 as we do l_len == 0.
+
 2002-11-10  Ulrich Drepper  <drepper@redhat.com>
 
 	* po/da.po: Update from translation team.
diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c
index 275f6b003d..d4e4aa5da1 100644
--- a/sysdeps/mach/hurd/fcntl.c
+++ b/sysdeps/mach/hurd/fcntl.c
@@ -155,7 +155,12 @@ __libc_fcntl (int fd, int cmd, ...)
 	switch (fl->l_whence)
 	  {
 	  case SEEK_SET:
-	    if (fl->l_start == 0 && fl->l_len == 0)
+	    if (fl->l_start == 0 && fl->l_len == 0) /* Whole file request.  */
+	      break;
+	    /* It seems to be common for applications to lock the first
+	       byte of the file when they are really doing whole-file locking.
+	       So, since it's so wrong already, might as well do that too.  */
+	    if (fl->l_start == 0 && fl->l_len == 1)
 	      break;
 	    /* FALLTHROUGH */
 	  case SEEK_CUR: