[PATCH] vfs: fix uninitialized flags in splice_to_pipe()

From: Miklos Szeredi
Date: Thu Feb 16 2017 - 11:49:17 EST


From: Miklos Szeredi <mszeredi@xxxxxxxxxx>

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@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 2.6.17+
---
fs/splice.c | 1 +
1 file changed, 1 insertion(+)

--- 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++;