summaryrefslogtreecommitdiff
path: root/tests/dev
diff options
context:
space:
mode:
authorjakllsch <jakllsch@NetBSD.org>2016-01-07 15:58:23 +0000
committerjakllsch <jakllsch@NetBSD.org>2016-01-07 15:58:23 +0000
commit3df1fc74b561f0c6683ca15f47cccc394227a3a9 (patch)
tree2ee3caa6b9e41556339c53baa0608adc88b52a74 /tests/dev
parent60afa74ead49275bcdc719e348620a727cd592c0 (diff)
Add tests for HID Parser Pop-on-empty-stack bug.
Diffstat (limited to 'tests/dev')
-rw-r--r--tests/dev/usb/t_hid.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/dev/usb/t_hid.c b/tests/dev/usb/t_hid.c
index 3ec827b76f1..a50486ea52a 100644
--- a/tests/dev/usb/t_hid.c
+++ b/tests/dev/usb/t_hid.c
@@ -1,4 +1,4 @@
-/* $NetBSD: t_hid.c,v 1.1 2016/01/05 17:22:38 jakllsch Exp $ */
+/* $NetBSD: t_hid.c,v 1.2 2016/01/07 15:58:23 jakllsch Exp $ */
/*
* Copyright (c) 2016 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: t_hid.c,v 1.1 2016/01/05 17:22:38 jakllsch Exp $");
+__RCSID("$NetBSD: t_hid.c,v 1.2 2016/01/07 15:58:23 jakllsch Exp $");
#include <machine/types.h>
#include <stdlib.h>
@@ -200,10 +200,34 @@ ATF_TC_BODY(khid, tc)
&hi.loc), 0xff);
}
+ATF_TC(khid_parse_just_pop);
+
+ATF_TC_HEAD(khid_parse_just_pop, tc)
+{
+
+ atf_tc_set_md_var(tc, "descr", "check kernel hid.c for "
+ "Pop on empty stack bug");
+}
+
+ATF_TC_BODY(khid_parse_just_pop, tc)
+{
+ struct hid_data *hdp;
+ struct hid_item hi;
+
+ atf_tc_expect_fail("Pop crashes on empty stack.");
+
+ hdp = hid_start_parse(just_pop_report_descriptor,
+ sizeof just_pop_report_descriptor, hid_none);
+ while (hid_get_item(hdp, &hi) > 0) {
+ }
+ hid_end_parse(hdp);
+}
+
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, khid);
+ ATF_TP_ADD_TC(tp, khid_parse_just_pop);
return atf_no_error();
}