commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

hurd/storeio ChangeLog open.c


From: Thomas Schwinge
Subject: hurd/storeio ChangeLog open.c
Date: Thu, 15 Jun 2006 13:54:08 +0000

CVSROOT:        /cvsroot/hurd
Module name:    hurd
Changes by:     Thomas Schwinge <tschwinge>     06/06/15 13:54:08

Modified files:
        storeio        : ChangeLog open.c 

Log message:
        2006-06-15  Thomas Schwinge  <address@hidden>
        
                * open.c (open_seek): Seek into the correct direction for 
`SEEK_END'.
                Return EINVAL if file pointer would become negative.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/hurd/storeio/ChangeLog?cvsroot=hurd&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/hurd/storeio/open.c?cvsroot=hurd&r1=1.2&r2=1.3

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/hurd/hurd/storeio/ChangeLog,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- ChangeLog   7 Jan 2005 23:06:26 -0000       1.54
+++ ChangeLog   15 Jun 2006 13:54:08 -0000      1.55
@@ -1,3 +1,8 @@
+2006-06-15  Thomas Schwinge  <address@hidden>
+
+       * open.c (open_seek): Seek into the correct direction for `SEEK_END'.
+       Return EINVAL if file pointer would become negative.
+
 2005-01-08  Marco Gerards  <address@hidden>
 
        * storeio.c (trivfs_modify_stat): Don't initialize st_blocks.

Index: open.c
===================================================================
RCS file: /cvsroot/hurd/hurd/storeio/open.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- open.c      23 Sep 1996 19:58:26 -0000      1.2
+++ open.c      15 Jun 2006 13:54:08 -0000      1.3
@@ -1,6 +1,6 @@
 /* Per-open information for storeio
 
-   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 2006 Free Software Foundation, Inc.
 
    Written by Miles Bader <address@hidden>
 
@@ -105,19 +105,22 @@
 
   switch (whence)
     {
-    case SEEK_SET:
-      open->offs = offs; break;
     case SEEK_CUR:
-      open->offs += offs; break;
+      offs += open->offs;
+      goto check;
     case SEEK_END:
-      open->offs = open->dev->store->size - offs; break;
+      offs += open->dev->store->size;
+    case SEEK_SET:
+    check:
+      if (offs >= 0)
+       {
+         *new_offs = open->offs = offs;
+         break;
+       }
     default:
       err = EINVAL;
     }
 
-  if (! err)
-    *new_offs = open->offs;
-
   mutex_unlock (&open->lock);
 
   return err;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]