On Tue, Jan 9, 2018 at 6:52 PM, Eric Biggers <ebiggers3@xxxxxxxxx> wrote: > 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; Oh yeah! I like that. -Kees -- Kees Cook Pixel Security