Guard the value iterator in method.insert.list

The list branch dereferenced end() when no value was given.
This commit is contained in:
noctuum
2026-09-16 16:27:47 +05:00
committed by Jari Sundell
parent c32b56e9d8
commit 3717649bb3
3 changed files with 24 additions and 1 deletions
+21
View File
@@ -61,3 +61,24 @@ TestCommandDynamic::test_old_style() {
rpc::commands.call_command("method.insert", rpc::create_object_list("test_old_style.4", "simple", "cat=test.3"));
CPPUNIT_ASSERT(rpc::commands.call_command("test_old_style.4", torrent::Object()).as_string() == "test.3");
}
void
TestCommandDynamic::test_insert_list() {
torrent::Object key_only = torrent::Object::create_list();
key_only.as_list().push_back("test_insert_list.1");
rpc::commands.call_command("method.insert.list", key_only);
torrent::Object result = rpc::commands.call_command("test_insert_list.1", torrent::Object());
CPPUNIT_ASSERT(result.is_list());
CPPUNIT_ASSERT(result.as_list().empty());
rpc::commands.call_command("method.insert.list",
rpc::create_object_list("test_insert_list.2", rpc::create_object_list("a", "b")));
torrent::Object filled = rpc::commands.call_command("test_insert_list.2", torrent::Object());
CPPUNIT_ASSERT(filled.is_list());
CPPUNIT_ASSERT_EQUAL((size_t)2, filled.as_list().size());
}
+2
View File
@@ -7,6 +7,7 @@ class TestCommandDynamic : public test_fixture {
CPPUNIT_TEST(test_basics);
CPPUNIT_TEST(test_get_set);
CPPUNIT_TEST(test_old_style);
CPPUNIT_TEST(test_insert_list);
CPPUNIT_TEST_SUITE_END();
@@ -18,6 +19,7 @@ public:
void test_get_set();
void test_old_style();
void test_insert_list();
private:
std::unique_ptr<TestMainThread> m_test_main_thread;