bug-gnulib
[Top][All Lists]
Advanced

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

[Bug-gnulib] fsusage.c update


From: Bruno Haible
Subject: [Bug-gnulib] fsusage.c update
Date: Tue, 17 Dec 2002 12:53:39 +0100 (CET)

Hi,

I did this change. The old code was not correct because when safe_read
returns a value > 0 but < buflen, it doesn't set errno. Whereas
full_read does.

        * fsusage.c: Include full_read.h.
        (get_fs_usage): Use full_read instead of safe_read.

*** fsusage.c   23 Nov 2002 15:08:35 -0000      1.43
--- fsusage.c   17 Dec 2002 11:47:53 -0000
***************
*** 81,86 ****
--- 81,88 ----
  int statvfs ();
  #endif
  
+ #include "full-read.h"
+ 
  /* Many space usage primitives use all 1 bits to denote a value that is
     not applicable or unknown.  Propagate this information by returning
     a uintmax_t value that is all 1 bits if X is all 1 bits, even if X
***************
*** 105,112 ****
     otherwise, use PROPAGATE_ALL_ONES.  */
  #define PROPAGATE_TOP_BIT(x) ((x) | ~ (EXTRACT_TOP_BIT (x) - 1))
  
- int safe_read ();
- 
  /* Fill in the fields of FSP with information about space usage for
     the filesystem on which PATH resides.
     DISK is the device on which PATH is mounted, for space-getting
--- 107,112 ----
***************
*** 163,169 ****
    if (fd < 0)
      return -1;
    lseek (fd, (off_t) SUPERBOFF, 0);
!   if (safe_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
      {
        close (fd);
        return -1;
--- 163,169 ----
    if (fd < 0)
      return -1;
    lseek (fd, (off_t) SUPERBOFF, 0);
!   if (full_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
      {
        close (fd);
        return -1;



reply via email to

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