On Tue, Apr 28, 2020 at 5:36 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Mon, Apr 27, 2020 at 8:28 PM Jann Horn <jannh@xxxxxxxxxx> wrote: > > > > After a partial write, we have to update the input buffer pointer. > > Interesting. It seems this partial write case never triggers (except > for actually killing the core-dump). > > Or did you find a case where it actually matters? > > Your fix is obviously correct, but it also makes me go "that function > clearly never actually worked for partial writes, maybe we shouldn't > even bother?" Hmm, yeah... I can't really think of cases where write handlers can spuriously return early without having a pending signal, and a second write is likely to succeed... I just know that there are some things that are notorious for returning short *reads* (e.g. pipes, sockets, /proc/$pid/maps). Al's commit message refers to pipes specifically; but even at commit 2507a4fbd48a, I don't actually see where pipe_write() could return a short write without a page allocation failure or something like that. So maybe you're right and we should just get rid of it...