diff mbox

vfs: fix uninitialized flags in splice_to_pipe()

Message ID 20170216164902.GC30656@veci.piliscsaba.szeredi.hu (mailing list archive)
State New, archived
Headers show

Commit Message

Miklos Szeredi Feb. 16, 2017, 4:49 p.m. UTC
From: Miklos Szeredi <mszeredi@redhat.com>

Flags (PIPE_BUF_FLAG_PACKET, PIPE_BUF_FLAG_GIFT) could remain on the unused
part of the pipe ring buffer.  Previously splice_to_pipe() left the flags
value alone, which could result in incorrect behavior.

Uninitialized flags appears to have been there from the introduction of the
splice syscall.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Cc: <stable@vger.kernel.org> # 2.6.17+
---
 fs/splice.c |    1 +
 1 file changed, 1 insertion(+)

Comments

Christoph Hellwig Feb. 20, 2017, 9:20 a.m. UTC | #1
On Thu, Feb 16, 2017 at 05:49:02PM +0100, Miklos Szeredi wrote:
> From: Miklos Szeredi <mszeredi@redhat.com>
> 
> Flags (PIPE_BUF_FLAG_PACKET, PIPE_BUF_FLAG_GIFT) could remain on the unused
> part of the pipe ring buffer.  Previously splice_to_pipe() left the flags
> value alone, which could result in incorrect behavior.
> 
> Uninitialized flags appears to have been there from the introduction of the
> splice syscall.

Looks fine,

Reviewed-by: Christoph Hellwig <hch@lst.de>
diff mbox

Patch

--- a/fs/splice.c
+++ b/fs/splice.c
@@ -204,6 +204,7 @@  ssize_t splice_to_pipe(struct pipe_inode
 		buf->len = spd->partial[page_nr].len;
 		buf->private = spd->partial[page_nr].private;
 		buf->ops = spd->ops;
+		buf->flags = 0;
 
 		pipe->nrbufs++;
 		page_nr++;