diff options
-rw-r--r-- | src/ne_request.c | 2 | ||||
-rw-r--r-- | test/request.c | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/ne_request.c b/src/ne_request.c index e28fcd4..7cb69a6 100644 --- a/src/ne_request.c +++ b/src/ne_request.c @@ -585,7 +585,7 @@ void ne_set_request_body_fd(ne_request *req, int fd, void ne_set_request_flag(ne_request *req, ne_request_flag flag, int value) { - if (flag < (ne_request_flag)NE_SESSFLAG_LAST) { + if (flag < (ne_request_flag)NE_REQFLAG_LAST) { req->flags[flag] = value; } } diff --git a/test/request.c b/test/request.c index 3444061..b0ef8c3 100644 --- a/test/request.c +++ b/test/request.c @@ -2358,6 +2358,21 @@ static int socks_fail(void) return await_server(); } +static int safe_flags(void) +{ + ne_session *sess = ne_session_create("http", "localhost", 80); + ne_request *req = ne_request_create(sess, "GET", "/"); + + ne_set_request_flag(req, NE_REQFLAG_LAST, 0xAAAAAAAA); + + ONN("flags array bound check failed", ne_get_session(req) != sess); + + ne_request_destroy(req); + ne_session_destroy(sess); + + return OK; +} + /* TODO: test that ne_set_notifier(, NULL, NULL) DTRT too. */ ne_test tests[] = { @@ -2451,5 +2466,6 @@ ne_test tests[] = { T(socks_fail), T(fail_lookup), T(fail_double_lookup), + T(safe_flags), T(NULL) }; |