[LTP] [PATCH v2] cgroup: Handle trailing new line in cgroup.controllers
Petr Vorel
pvorel@suse.cz
Fri Oct 27 12:09:03 CEST 2023
> Hello,
> Petr Vorel <pvorel@suse.cz> writes:
> > Hi Richie,
> > Reviewed-by: Petr Vorel <pvorel@suse.cz>
> >> V2:
> >> * Add underscore
> >> * Add length check
> >> * Expand commit message
> >> * Use shorter syntax
> > +1
> >> lib/tst_cgroup.c | 13 ++++++++++++-
> >> 1 file changed, 12 insertions(+), 1 deletion(-)
> >> diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
> >> index 5240aadaa..c5cb20505 100644
> >> --- a/lib/tst_cgroup.c
> >> +++ b/lib/tst_cgroup.c
> >> @@ -433,9 +433,20 @@ __attribute__ ((nonnull, warn_unused_result))
> >> static struct cgroup_ctrl *cgroup_find_ctrl(const char *const ctrl_name)
> >> {
> >> struct cgroup_ctrl *ctrl;
> >> + int l = 0;
> >> + char c = ctrl_name[l];
> >> +
> >> + while (c == '_' || (c >= 'a' && c <= 'z'))
> >> + c = ctrl_name[++l];
> >> +
> >> + if (l > 32)
> > +1 for this check.
> > I would slightly prefer to add MAX_CGROUP_TYPE_NAMELEN definition into our
> > include/tst_cgroup.h, but it can stay as is.
> > BTW include/linux/cgroup-defs.h contains also MAX_CGROUP_ROOT_NAMELEN, there are
> > also other checks in C files (CGROUP_FILE_NAME_MAX) in case it makes sense to
> > have some checks for these (I have no idea).
> I'm not sure about this. On the one hand it may detect a bug in the
> library or kernel. On the other it's not exposed to userland or defined
> anywhere.
Yep, it's just an idea, I'm not sure myself.
> For me the main thing is to avoid janitorial work like creating and
> merging patches just to increase some internal kernel value that was
> increased or is ignored in some corner case.
+1
> I'll post another patch if there is some obvious way to check the root
> name length that would help the library.
+1
> Thanks for the review, I'll merge this now.
Great.
Kind regards,
Petr
> > Kind regards,
> > Petr
> >> + tst_res(TWARN, "Subsys name len greater than max known value of MAX_CGROUP_TYPE_NAMELEN: %d > 32", l);
> >> +
> >> + if (!(c == '\n' || c == '\0'))
> >> + tst_brk(TBROK, "Unexpected char in %s: %c", ctrl_name, c);
> >> for_each_ctrl(ctrl) {
> >> - if (!strcmp(ctrl_name, ctrl->ctrl_name))
> >> + if (!strncmp(ctrl_name, ctrl->ctrl_name, l))
> >> return ctrl;
> >> }
More information about the ltp
mailing list