diff --git a/src/rpc/xmlrpc_tinyxml2.cc b/src/rpc/xmlrpc_tinyxml2.cc index cdcea478..a5b9fc32 100644 --- a/src/rpc/xmlrpc_tinyxml2.cc +++ b/src/rpc/xmlrpc_tinyxml2.cc @@ -130,7 +130,7 @@ xml_value_to_object(const tinyxml2::XMLNode* elem) { } else if (boolean_text == "0") { return torrent::Object((int64_t)0); } - throw xmlrpc_error(XMLRPC_INTERNAL_ERROR, "unknown boolean value: " + boolean_text); + throw xmlrpc_error(XMLRPC_TYPE_ERROR, "unknown boolean value: " + boolean_text); } else if (value_element_type == "array") { auto array = torrent::Object::create_list(); auto data_element = element_access(value_element->ToElement(), "data"); diff --git a/test/rpc/xmlrpc_test_data.txt b/test/rpc/xmlrpc_test_data.txt index 78f83a92..12268c66 100644 --- a/test/rpc/xmlrpc_test_data.txt +++ b/test/rpc/xmlrpc_test_data.txt @@ -57,3 +57,7 @@ thodCall>test_a41xmlrpc_reflectstring value faultCode-501faultStringunable to parse integer value + +# Invalid - non-boolean boolean +xmlrpc_reflectstring value +faultCode-501faultStringunknown boolean value: string value