1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-04 13:42:55 +01:00

Safe handling of malformed server entries

Refuse to add a nameless server or one without version specified, but
allow description missing.
This commit is contained in:
Michał Janiszewski
2015-12-21 22:07:25 +01:00
parent dbb804018b
commit 5d227d8fc8

View File

@@ -733,6 +733,12 @@ static void fetch_servers_callback(http_json_response* response)
json_t *ip6 = json_object_get(ip, "v6");
json_t *addressIp = json_array_get(ip4, 0);
if (name == NULL || version == NULL)
{
log_verbose("Cowardly refusing to add server without name or version specified.");
continue;
}
char address[256];
snprintf(address, sizeof(address), "%s:%d", json_string_value(addressIp), (int)json_integer_value(port));
@@ -743,7 +749,7 @@ static void fetch_servers_callback(http_json_response* response)
SafeFree(newserver->version);
newserver->name = _strdup(json_string_value(name));
newserver->requiresPassword = json_boolean_value(requiresPassword);
newserver->description = _strdup(json_string_value(description));
newserver->description = _strdup(description == NULL ? "" : json_string_value(description));
newserver->version = _strdup(json_string_value(version));
newserver->players = (uint8)json_integer_value(players);
newserver->maxplayers = (uint8)json_integer_value(maxPlayers);