Fail more nicely on max_read mismatch
authorNikolaus Rath <Nikolaus@rath.org>
Wed, 16 Nov 2016 20:44:26 +0000 (12:44 -0800)
committerNikolaus Rath <Nikolaus@rath.org>
Wed, 16 Nov 2016 20:44:26 +0000 (12:44 -0800)
Instead of abort()ing, close the session properly and return an
error code.

lib/fuse_lowlevel.c

index 4cc41933d742479a9c24d0ccb71ff064880d6ff9..9fd914429c9b950e53e6069aa581523261aa9918 100644 (file)
@@ -1921,7 +1921,10 @@ static void do_init(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
                fprintf(stderr, "fuse: error: init() and fuse_session_new() "
                        "requested different maximum read size (%u vs %u)\n",
                        se->conn.max_read, max_read_mo);
-               abort();
+               fuse_reply_err(req, EPROTO);
+               se->error = -EPROTO;
+               fuse_session_exit(se);
+               return;
        }
 
        /* Always enable big writes, this is superseded