On 9/30/20 12:35 AM, Aleksa Sarai wrote: > Due to a userspace breakage, commit 1251201c0d34 ("sched/core: Fix > uclamp ABI bug, clean up and robustify sched_read_attr() ABI logic and > code") changed the semantics of sched_getattr(2) when the userspace > struct is smaller than the kernel struct. Now, any trailing non-zero > data in the kernel structure is ignored when copying to userspace. We > also document the original error code correctly (it was EFBIG not > E2BIG) in the BUGS section. Thanks, Aleksa. Patch applied. Cheers, Michael > Ref: 1251201c0d34 ("sched/core: Fix uclamp ABI bug, clean up and > robustify sched_read_attr() ABI logic and code") > Signed-off-by: Aleksa Sarai <cyphar@xxxxxxxxxx> > --- > man2/sched_setattr.2 | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/man2/sched_setattr.2 b/man2/sched_setattr.2 > index 2592a761a086..da0972a6a86d 100644 > --- a/man2/sched_setattr.2 > +++ b/man2/sched_setattr.2 > @@ -286,10 +286,8 @@ structure, > the additional bytes in the user-space structure are not touched. > If the caller-provided structure is smaller than the kernel > .I sched_attr > -structure and the kernel needs to return values outside the provided space, > -.BR sched_getattr () > -fails with the error > -.BR E2BIG . > +structure, the kernel will silently not return any values which would be stored > +outside the provided space. > As with > .BR sched_setattr (), > these semantics allow for future extensibility of the interface. > @@ -416,6 +414,16 @@ failed with the error > instead of > .BR E2BIG > for the case described in ERRORS. > +.PP > +In Linux versions up to 5.3, > +.BR sched_getattr () > +failed with the error > +.BR EFBIG > +if the in-kernel > +.IR sched_attr > +structure was larger than the > +.IR size > +passed by user space. > .\" In Linux versions up to up 3.15, > .\" FIXME . patch from Peter Zijlstra pending > .\" .BR sched_setattr () > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/