OSDN Git Service

9p: ensure err is initialized to 0 in p9_client_read/write
authorVincent Bernat <vincent@bernat.im>
Sat, 15 Aug 2015 13:49:13 +0000 (15:49 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 23 Aug 2015 01:35:02 +0000 (21:35 -0400)
commit999b8b88c6060adf7a9b7907740ae86ace65291e
treeb8d0860768745926227e32002bdd5c249fdd4a86
parent45e38cff4fce8d6871b5fa5e734e4dc9814d6056
9p: ensure err is initialized to 0 in p9_client_read/write

Some use of those functions were providing unitialized values to those
functions. Notably, when reading 0 bytes from an empty file on a 9P
filesystem, the return code of read() was not 0.

Tested with this simple program:

    #include <assert.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>

    int main(int argc, const char **argv)
    {
        assert(argc == 2);
        char buffer[256];
        int fd = open(argv[1], O_RDONLY|O_NOCTTY);
        assert(fd >= 0);
        assert(read(fd, buffer, 0) == 0);
        return 0;
    }

Cc: stable@vger.kernel.org # v4.1
Signed-off-by: Vincent Bernat <vincent@bernat.im>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
net/9p/client.c