diff options
author | Uli Schlachter <psychon@znc.in> | 2015-04-06 16:18:22 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2015-04-06 16:18:22 +0200 |
commit | ac6b8d89120c9c26925fa4c9bc5d8b56d4ef7113 (patch) | |
tree | b20715ecd1b78b5a54036addcc9905f863496c31 | |
parent | 54e2145e1198a892312c571098298baa56fb4d05 (diff) |
Re-add a missing length check
This check was accidentally removed in commit 4ed12c46dec9a3055e009c5ecd6c.
Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r-- | src/xcb_errors.c | 6 | ||||
-rw-r--r-- | tests/test.c | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/xcb_errors.c b/src/xcb_errors.c index 428e7be..2eedc34 100644 --- a/src/xcb_errors.c +++ b/src/xcb_errors.c @@ -200,7 +200,8 @@ const char *xcb_errors_get_name_for_core_event(xcb_errors_context_t *ctx, best = current; } - if (best == NULL || best->first_event == 0) { + if (best == NULL || best->first_event == 0 + || event_code - best->first_event >= best->static_info->num_events) { /* Nothing found */ return get_strings_entry(xproto_info.strings_events, event_code); } @@ -237,7 +238,8 @@ const char *xcb_errors_get_name_for_error(xcb_errors_context_t *ctx, best = current; } - if (best == NULL || best->first_error == 0) { + if (best == NULL || best->first_error == 0 + || error_code - best->first_error >= best->static_info->num_errors) { /* Nothing found */ return get_strings_entry(xproto_info.strings_errors, error_code); } diff --git a/tests/test.c b/tests/test.c index 67c01d0..bb7ba75 100644 --- a/tests/test.c +++ b/tests/test.c @@ -347,11 +347,13 @@ static int test_valid_connection(void) err |= check_error(ctx, XCB_IMPLEMENTATION, "Implementation", NULL); err |= check_error(ctx, 18, "Unknown (18)", NULL); err |= check_error(ctx, 127, "Unknown (127)", NULL); + err |= check_error(ctx, 0xff, "Unknown (255)", NULL); err |= check_event(ctx, XCB_KEY_PRESS, "KeyPress", NULL); err |= check_event(ctx, XCB_KEY_RELEASE, "KeyRelease", NULL); err |= check_event(ctx, XCB_GE_GENERIC, "GeGeneric", NULL); err |= check_event(ctx, 36, "Unknown (36)", NULL); + err |= check_event(ctx, 127, "Unknown (127)", NULL); err |= test_randr(c, ctx); err |= test_xinput(c, ctx); |