(_IO_cookie_write): If something went wrong, set error bit.
authordrepper <drepper>
Fri, 23 Sep 2005 16:35:17 +0000 (16:35 +0000)
committerdrepper <drepper>
Fri, 23 Sep 2005 16:35:17 +0000 (16:35 +0000)
libio/iofopncook.c

index 9c5503d..976ff50 100644 (file)
@@ -64,9 +64,16 @@ _IO_cookie_write (fp, buf, size)
   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
 
   if (cfile->__io_functions.write == NULL)
-    return -1;
+    {
+      fp->_flags |= _IO_ERR_SEEN;
+      return 0;
+    }
+
+  _IO_ssize_t n = cfile->__io_functions.write (cfile->__cookie, buf, size);
+  if (n < size)
+    fp->_flags |= _IO_ERR_SEEN;
 
-  return cfile->__io_functions.write (cfile->__cookie, buf, size);
+  return n;
 }
 
 static _IO_off64_t