Module Name: src
Committed By: maxv
Date: Sun Apr 26 12:13:10 UTC 2020
Modified Files:
src/tests/lib/libi386: t_user_ldt.c
Log Message:
Add a test on the maximum number of slots.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libi386/t_user_ldt.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/lib/libi386/t_user_ldt.c
diff -u src/tests/lib/libi386/t_user_ldt.c:1.1 src/tests/lib/libi386/t_user_ldt.c:1.2
--- src/tests/lib/libi386/t_user_ldt.c:1.1 Sun Apr 19 13:22:58 2020
+++ src/tests/lib/libi386/t_user_ldt.c Sun Apr 26 12:13:10 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: t_user_ldt.c,v 1.1 2020/04/19 13:22:58 maxv Exp $ */
+/* $NetBSD: t_user_ldt.c,v 1.2 2020/04/26 12:13:10 maxv Exp $ */
/*
* Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -42,6 +42,10 @@
#include <machine/sysarch.h>
#include <machine/vmparam.h>
+#define _LOCORE /* XXX a bit of a hack, but whatever */
+#include <machine/gdt.h>
+#undef _LOCORE
+
#include <atf-c.h>
static uint8_t *ldt_base;
@@ -166,6 +170,13 @@ ATF_TC_BODY(filter_ops, tc)
ATF_REQUIRE_EQ(i386_set_ldt(256, &desc, 1), -1);
ATF_REQUIRE_EQ(errno, EACCES);
}
+
+ /* Check the slot limit. */
+ build_desc(&desc, ldt_base, PAGE_SIZE, SDT_MEMRW, SEL_UPL, 1, 0);
+ ATF_REQUIRE_EQ(i386_set_ldt(MAX_USERLDT_SLOTS-1, &desc, 1),
+ MAX_USERLDT_SLOTS-1);
+ ATF_REQUIRE_EQ(i386_set_ldt(MAX_USERLDT_SLOTS, &desc, 1), -1);
+ ATF_REQUIRE_EQ(errno, EINVAL);
}
/* -------------------------------------------------------------------------- */