]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cfuse: use safe_read and check return value
authorSage Weil <sage.weil@dreamhost.com>
Sat, 12 Feb 2011 06:57:29 +0000 (22:57 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Sat, 12 Feb 2011 07:06:20 +0000 (23:06 -0800)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/cfuse.cc

index 236de4adb983ce1cdff83804d4761b4afcae8d73..e8ff5694f5a45d4950a4c856c21ee04c4e79457f 100644 (file)
@@ -168,16 +168,17 @@ int main(int argc, const char **argv, const char *envp[]) {
     ::close(fd[1]);
 
     int r = -1;
-    ::read(fd[0], &r, sizeof(r));
-    if (r == 0) {
+    int err = safe_read_exact(fd[0], &r, sizeof(r));
+    if (err == 0 && r == 0) {
       // close stdout, etc.
       //cout << "success" << std::endl;
       ::close(0);
       ::close(1);
       ::close(2);
-    } else {
+    } else if (err)
+      cerr << "cfuse[" << getpid() << "]: mount failed: " << strerror(-err) << std::endl;
+    else
       cerr << "cfuse[" << getpid() << "]: mount failed: " << strerror(-r) << std::endl;
-    }
     return r;
   }
 }