diff mbox

[i-g-t,3/3] lib: validate subtest names

Message ID 1422357422-4315-3-git-send-email-thomas.wood@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thomas Wood Jan. 27, 2015, 11:17 a.m. UTC
Subtest names should only contain '-', '_' and alphanumeric characters.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 lib/igt_core.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff mbox

Patch

diff --git a/lib/igt_core.c b/lib/igt_core.c
index bc588e2..d74f6f8 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -54,6 +54,7 @@ 
 #include <termios.h>
 #include <errno.h>
 #include <time.h>
+#include <ctype.h>
 
 #include "drmtest.h"
 #include "intel_chipset.h"
@@ -693,10 +694,21 @@  void igt_simple_init_parse_opts(int argc, char **argv,
  */
 bool __igt_run_subtest(const char *subtest_name)
 {
+	int i;
+
 	assert(!in_subtest);
 	assert(!in_fixture);
 	assert(test_with_subtests);
 
+	/* check the subtest name only contains a-z, A-Z, 0-9, '-' and '_' */
+	for (i = 0; subtest_name[i] != '\0'; i++)
+		if (subtest_name[i] != '_' && subtest_name[i] != '-'
+		    && !isalnum(subtest_name[i])) {
+			igt_critical("Invalid subtest name \"%s\".\n",
+				     subtest_name);
+			igt_exit();
+		}
+
 	if (list_subtests) {
 		printf("%s\n", subtest_name);
 		return false;