summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2018-09-24 10:44:40 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2018-09-24 10:44:40 +0000
commit0f0223e1a66000ca7e99ce832864d73b8a06bf7f (patch)
treef0d60df1054fcfcc35d7bed23ef5d293db6fe1c9
parent0c3077b974bae385d2af92328cda158a1e713fbd (diff)
downloadneon-0f0223e1a66000ca7e99ce832864d73b8a06bf7f.tar.gz
* src/ne_request.c (ne_set_request_flag): Fix bounds check.
* test/request.c (safe_flags): Add regression test. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@2015 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
-rw-r--r--src/ne_request.c2
-rw-r--r--test/request.c16
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)
};