• Vincent Bernat's avatar
    9p: ensure err is initialized to 0 in p9_client_read/write · 999b8b88
    Vincent Bernat authored
    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: default avatarVincent Bernat <vincent@bernat.im>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    999b8b88
client.c 51.8 KB