lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri,  6 Mar 2020 19:40:42 -0800
From:   Sai Praneeth Prakhya <sai.praneeth.prakhya@...el.com>
To:     shuah@...nel.org, linux-kselftest@...r.kernel.org
Cc:     tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
        tony.luck@...el.com, reinette.chatre@...el.com, babu.moger@....com,
        james.morse@....com, ravi.v.shankar@...el.com,
        fenghua.yu@...el.com, x86@...nel.org, linux-kernel@...r.kernel.org,
        Sai Praneeth Prakhya <sai.praneeth.prakhya@...el.com>
Subject: [PATCH V1 01/13] selftests/resctrl: Fix feature detection

From: Reinette Chatre <reinette.chatre@...el.com>

The intention of the resctrl selftests is to only run the tests
associated with the feature(s) supported by the platform. Through
parsing of the feature flags found in /proc/cpuinfo it is possible
to learn which features are supported by the plaform.

There are currently two issues with the platform feature detection that
together result in tests always being run, whether the platform supports
a feature or not. First, the parsing of the the feature flags loads the
line containing the flags in a buffer that is too small (256 bytes) to
always contain all flags. The consequence is that the flags of the features
being tested for may not be present in the buffer. Second, the actual
test for presence of a feature has an error in the logic, negating the
test for a particular feature flag instead of testing for the presence of a
particular feature flag.

These two issues combined results in all tests being run on all
platforms, whether the feature is supported or not.

Fix these issue by (1) increasing the buffer size being used to parse
the feature flags, and (2) change the logic to test for presence of the
feature being tested for.

Signed-off-by: Reinette Chatre <reinette.chatre@...el.com>
Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya@...el.com>
---
 tools/testing/selftests/resctrl/resctrlfs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c
index 19c0ec4045a4..226dd7fdcfb1 100644
--- a/tools/testing/selftests/resctrl/resctrlfs.c
+++ b/tools/testing/selftests/resctrl/resctrlfs.c
@@ -596,11 +596,11 @@ bool check_resctrlfs_support(void)
 
 char *fgrep(FILE *inf, const char *str)
 {
-	char line[256];
 	int slen = strlen(str);
+	char line[2048];
 
 	while (!feof(inf)) {
-		if (!fgets(line, 256, inf))
+		if (!fgets(line, 2048, inf))
 			break;
 		if (strncmp(line, str, slen))
 			continue;
@@ -631,7 +631,7 @@ bool validate_resctrl_feature_request(char *resctrl_val)
 	if (res) {
 		char *s = strchr(res, ':');
 
-		found = s && !strstr(s, resctrl_val);
+		found = s && strstr(s, resctrl_val);
 		free(res);
 	}
 	fclose(inf);
-- 
2.7.4

Powered by blists - more mailing lists