From: Li Wang <liwang@redhat.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH] lib: switch cgroup bit-fields from signed to unsigned int
Date: Sat, 18 Jan 2025 18:26:15 +0800 [thread overview]
Message-ID: <20250118102615.127485-1-liwang@redhat.com> (raw)
There is a problem in cgroup lib that the declearation int
can lead to -1 during the | operation.
Becasue if the field contains uninitialized garbage data,
a bit-field declared as int could interpret 0b1 as -1 due
to signed arithmetic.
By changing the type to unsigned int, the issue is avoided
since unsigned fields cannot represent negative values.
Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Jin Guojie <guojie.jin@gmail.com>
---
Notes:
@Cyril, Petr, I vote to merge this patch before the release.
@Guojie, Could you plz repost your memcontrol04 patch based on this change?
include/tst_test.h | 2 +-
lib/tst_cgroup.c | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/tst_test.h b/include/tst_test.h
index 5b3889e64..eb73cd593 100644
--- a/include/tst_test.h
+++ b/include/tst_test.h
@@ -610,7 +610,7 @@ struct tst_fs {
const char *const *needs_cgroup_ctrls;
- int needs_cgroup_nsdelegate:1;
+ unsigned int needs_cgroup_nsdelegate:1;
};
/**
diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
index 6055015eb..aa13ac8ec 100644
--- a/lib/tst_cgroup.c
+++ b/lib/tst_cgroup.c
@@ -44,7 +44,7 @@ struct cgroup_dir {
*/
int dir_fd;
- int we_created_it:1;
+ unsigned int we_created_it:1;
};
/* The root of a CGroup hierarchy/tree */
@@ -71,11 +71,11 @@ struct cgroup_root {
/* CGroup for current test. Which may have children. */
struct cgroup_dir test_dir;
- int nsdelegate:1;
+ unsigned int nsdelegate:1;
- int we_mounted_it:1;
+ unsigned int we_mounted_it:1;
/* cpuset is in compatability mode */
- int no_cpuset_prefix:1;
+ unsigned int no_cpuset_prefix:1;
};
/* Controller sub-systems */
@@ -138,7 +138,7 @@ struct cgroup_ctrl {
/* Runtime; hierarchy the controller is attached to */
struct cgroup_root *ctrl_root;
/* Runtime; whether we required the controller */
- int we_require_it:1;
+ unsigned int we_require_it:1;
};
struct tst_cg_group {
--
2.47.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next reply other threads:[~2025-01-18 10:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-18 10:26 Li Wang [this message]
2025-01-23 20:50 ` [LTP] [PATCH] lib: switch cgroup bit-fields from signed to unsigned int Petr Vorel
2025-01-24 11:19 ` Cyril Hrubis
2025-01-25 2:43 ` Li Wang
2025-01-25 2:46 ` Li Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250118102615.127485-1-liwang@redhat.com \
--to=liwang@redhat.com \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.