diff options
| author | jakllsch <jakllsch@NetBSD.org> | 2016-01-07 15:58:23 +0000 |
|---|---|---|
| committer | jakllsch <jakllsch@NetBSD.org> | 2016-01-07 15:58:23 +0000 |
| commit | 3df1fc74b561f0c6683ca15f47cccc394227a3a9 (patch) | |
| tree | 2ee3caa6b9e41556339c53baa0608adc88b52a74 /tests/dev | |
| parent | 60afa74ead49275bcdc719e348620a727cd592c0 (diff) | |
Add tests for HID Parser Pop-on-empty-stack bug.
Diffstat (limited to 'tests/dev')
| -rw-r--r-- | tests/dev/usb/t_hid.c | 28 |
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(); } |
