string += 13;
// hostcache only uses text addresses
LHNETADDRESS_ToString(peeraddress, cname, sizeof(cname), true);
- if ((s = SearchInfostring(string, "gamename" )) != NULL) strncpy(game, s, sizeof(game) - 1);else game[0] = 0;
- if ((s = SearchInfostring(string, "modname" )) != NULL) strncpy(mod , s, sizeof(mod ) - 1);else mod[0] = 0;
- if ((s = SearchInfostring(string, "mapname" )) != NULL) strncpy(map , s, sizeof(map ) - 1);else map[0] = 0;
- if ((s = SearchInfostring(string, "hostname" )) != NULL) strncpy(name, s, sizeof(name) - 1);else name[0] = 0;
+ if ((s = SearchInfostring(string, "gamename" )) != NULL) strlcpy(game, s, sizeof (game));else game[0] = 0;
+ if ((s = SearchInfostring(string, "modname" )) != NULL) strlcpy(mod , s, sizeof (mod ));else mod[0] = 0;
+ if ((s = SearchInfostring(string, "mapname" )) != NULL) strlcpy(map , s, sizeof (map ));else map[0] = 0;
+ if ((s = SearchInfostring(string, "hostname" )) != NULL) strlcpy(name, s, sizeof (name));else name[0] = 0;
if ((s = SearchInfostring(string, "protocol" )) != NULL) c = atoi(s);else c = -1;
if ((s = SearchInfostring(string, "clients" )) != NULL) users = atoi(s);else users = 0;
if ((s = SearchInfostring(string, "sv_maxclients")) != NULL) maxusers = atoi(s);else maxusers = 0;
Con_Printf("received server list...\n");
while (length >= 7 && data[0] == '\\' && (data[1] != 0xFF || data[2] != 0xFF || data[3] != 0xFF || data[4] != 0xFF) && data[5] * 256 + data[6] != 0)
{
- sprintf(ipstring, "%u.%u.%u.%u:%u", data[1], data[2], data[3], data[4], (data[5] << 8) | data[6]);
+ snprintf (ipstring, sizeof (ipstring), "%u.%u.%u.%u:%u", data[1], data[2], data[3], data[4], (data[5] << 8) | data[6]);
if (developer.integer)
Con_Printf("Requesting info from server %s\n", ipstring);
LHNETADDRESS_FromString(&svaddress, ipstring, 0);
}
memset(&hostcache[n], 0, sizeof(hostcache[n]));
// store the data the engine cares about (address and ping)
- strcpy(hostcache[n].cname, ipstring);
+ strlcpy (hostcache[n].cname, ipstring, sizeof (hostcache[n].cname));
hostcache[n].ping = 100000;
hostcache[n].querytime = realtime;
// build description strings for the things users care about
if (developer.integer)
Con_Printf("Datagram_ParseConnectionless: received CCREP_REJECT from %s.\n", addressstring2);
Con_Printf("%s\n", data);
- strncpy(m_return_reason, data, sizeof(m_return_reason) - 1);
+ strlcpy (m_return_reason, data, sizeof (m_return_reason));
break;
#if 0
case CCREP_SERVER_INFO:
{
hostCacheCount++;
memset(&hostcache[n], 0, sizeof(hostcache[n]));
- strcpy(hostcache[n].name, MSG_ReadString());
- strcpy(hostcache[n].map, MSG_ReadString());
+ strlcpy (hostcache[n].name, MSG_ReadString(), sizeof (hostcache[n].name));
+ strlcpy (hostcache[n].map, MSG_ReadString(), sizeof (hostcache[n].map));
hostcache[n].users = MSG_ReadByte();
hostcache[n].maxusers = MSG_ReadByte();
c = MSG_ReadByte();
if (c != NET_PROTOCOL_VERSION)
{
- strncpy(hostcache[n].cname, hostcache[n].name, sizeof(hostcache[n].cname) - 1);
- hostcache[n].cname[sizeof(hostcache[n].cname) - 1] = 0;
+ strlcpy (hostcache[n].cname, hostcache[n].name, sizeof (hostcache[n].cname));
strcpy(hostcache[n].name, "*");
- strncat(hostcache[n].name, hostcache[n].cname, sizeof(hostcache[n].name) - 1);
- hostcache[n].name[sizeof(hostcache[n].name) - 1] = 0;
+ strlcat (hostcache[n].name, hostcache[n].cname, sizeof(hostcache[n].name));
}
- strcpy(hostcache[n].cname, cname);
+ strlcpy (hostcache[n].cname, cname, sizeof (hostcache[n].cname));
}
}
break;
{
cls.connect_trying = false;
if (m_state == m_slist)
- strcpy(m_return_reason, "Connect: Failed");
+ strcpy (m_return_reason, "Connect: Failed");
else
Con_Printf("Connect failed\n");
return;
if (cls.connect_nextsendtime)
{
if (m_state == m_slist)
- strcpy(m_return_reason, "Connect: Still trying");
+ strcpy (m_return_reason, "Connect: Still trying");
else
Con_Printf("Still trying...\n");
}
else
{
if (m_state == m_slist)
- strcpy(m_return_reason, "Connect: Trying");
+ strcpy (m_return_reason, "Connect: Trying");
else
Con_Printf("Trying...\n");
}
{
// connect to the client
// everything is allocated, just fill in the details
- strcpy(conn->address, addressstring2);
+ strlcpy (conn->address, addressstring2, sizeof (conn->address));
if (developer.integer)
Con_Printf("Datagram_ParseConnectionless: sending CCREP_ACCEPT to %s.\n", addressstring2);
// send back the info about the server connection