]> mj.ucw.cz Git - libucw.git/commitdiff
fastbufs: added some I/O checks
authorPavel Charvat <pavel.charvat@netcentrum.cz>
Wed, 6 Jun 2007 07:30:03 +0000 (09:30 +0200)
committerPavel Charvat <pavel.charvat@netcentrum.cz>
Wed, 6 Jun 2007 07:30:03 +0000 (09:30 +0200)
lib/fb-file.c
lib/fb-mmap.c

index bf5684aff0aeaf284f3166c6c539b7f427de4e07..66227ed1b3ef3935ae09c97710b2403b26d66ef7 100644 (file)
@@ -196,7 +196,8 @@ bfd_close(struct fastbuf *f)
       if (unlink(f->name) < 0)
        log(L_ERROR, "unlink(%s): %m", f->name);
     case 0:
-      close(FB_FILE(f)->fd);
+      if (close(FB_FILE(f)->fd))
+       die("close(%s): %m", f->name);
     }
   xfree(f);
 }
index 1e610c9c9d18b99bf2eba577f850d765d7fc8a24..15c542a07082bbc0f1a0f4d23d9d334596b9d461 100644 (file)
@@ -148,7 +148,8 @@ bfmm_close(struct fastbuf *f)
       if (unlink(f->name) < 0)
        log(L_ERROR, "unlink(%s): %m", f->name);
     case 0:
-      close(F->fd);
+      if (close(F->fd))
+       die("close(%s): %m", f->name);
     }
   xfree(f);
 }
@@ -178,6 +179,8 @@ bfmmopen_internal(int fd, byte *name, uns mode)
   memcpy(f->name, name, namelen);
   F->fd = fd;
   F->file_extend = F->file_size = sh_seek(fd, 0, SEEK_END);
+  if (F->file_size < 0)
+    die("seek(%s): %m", name);
   if (mode & O_APPEND)
     f->pos = F->file_size;
   F->mode = mode;