On Tue, Jan 09, 2018 at 02:27:10PM -0800, Kees Cook wrote: > > > @@ -1054,9 +1048,6 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long arg) > > return -EINVAL; > > nr_pages = size >> PAGE_SHIFT; > > > > - if (!nr_pages) > > - return -EINVAL; > > - > > I would just leave this hunk anyway: it's defensive for any future > changes. Maybe add a comment describing why it's currently redundant? > I don't know; I find it really confusing to have two slightly different checks for the same thing, as it implies that they actually need to be there for a reason. How about just checking nr_pages? size = round_pipe_size(arg); nr_pages = size >> PAGE_SHIFT; if (nr_pages == 0) return -EINVAL; Eric