• Jens Axboe's avatar
    [PATCH] splice: fix bugs in pipe_to_file() · 0568b409
    Jens Axboe authored
    Found by Oleg Nesterov <oleg@tv-sign.ru>, fixed by me.
    
    - Only allow full pages to go to the page cache.
    - Check page != buf->page instead of using PIPE_BUF_FLAG_STOLEN.
    - Remember to clear 'stolen' if add_to_page_cache() fails.
    
    And as a cleanup on that:
    
    - Make the bottom fall-through logic a little less convoluted. Also make
      the steal path hold an extra reference to the page, so we don't have
      to differentiate between stolen and non-stolen at the end.
    Signed-off-by: default avatarJens Axboe <axboe@suse.de>
    0568b409
pipe.c 19.3 KB