diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-02-26 19:45:25 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-02-26 19:45:25 +0900 |
| commit | ad11d746f09977ce151ef6f49dd971f4af451d44 (patch) | |
| tree | 77c171847cbfb928daeb22fa5a3eab1bb483a1ca /test/RpcMethodTest.cc | |
| parent | 7a1cba2c596dc6330fd30b6249b24a894b5bea62 (diff) | |
Only accepts 32 bit integer values from int and i4 elements in XML-RPC.
Fixed overflow in AbstractPaginationRpcMethod::getPaginationRange().
Fixes bug#3494165
Diffstat (limited to 'test/RpcMethodTest.cc')
| -rw-r--r-- | test/RpcMethodTest.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/RpcMethodTest.cc b/test/RpcMethodTest.cc index 7e927927..d28cc2fa 100644 --- a/test/RpcMethodTest.cc +++ b/test/RpcMethodTest.cc @@ -652,6 +652,36 @@ void RpcMethodTest::testTellWaiting() CPPUNIT_ASSERT_EQUAL(0, res.code); resParams = downcast<List>(res.param); CPPUNIT_ASSERT_EQUAL((size_t)3, resParams->size()); + + // offset = INT32_MAX + req.params->set(0, Integer::g(INT32_MAX)); + req.params->set(1, Integer::g(1)); + res = m.execute(req, e_.get()); + CPPUNIT_ASSERT_EQUAL(0, res.code); + resParams = downcast<List>(res.param); + CPPUNIT_ASSERT_EQUAL((size_t)0, resParams->size()); + // num = INT32_MAX + req.params->set(0, Integer::g(1)); + req.params->set(1, Integer::g(INT32_MAX)); + res = m.execute(req, e_.get()); + CPPUNIT_ASSERT_EQUAL(0, res.code); + resParams = downcast<List>(res.param); + CPPUNIT_ASSERT_EQUAL((size_t)3, resParams->size()); + // offset=INT32_MAX and num = INT32_MAX + req.params->set(0, Integer::g(INT32_MAX)); + req.params->set(1, Integer::g(INT32_MAX)); + res = m.execute(req, e_.get()); + CPPUNIT_ASSERT_EQUAL(0, res.code); + resParams = downcast<List>(res.param); + CPPUNIT_ASSERT_EQUAL((size_t)0, resParams->size()); + // offset=INT32_MIN and num = INT32_MAX + req.params->set(0, Integer::g(INT32_MIN)); + req.params->set(1, Integer::g(INT32_MAX)); + res = m.execute(req, e_.get()); + CPPUNIT_ASSERT_EQUAL(0, res.code); + resParams = downcast<List>(res.param); + CPPUNIT_ASSERT_EQUAL((size_t)0, resParams->size()); + // negative offset req = RpcRequest(TellWaitingRpcMethod::getMethodName(), List::g()); req.params->append(Integer::g(-1)); |
