]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - netconn.c
collision brush generation in q3bsp is now *MUCH* faster and uses a lot less memory...
[xonotic/darkplaces.git] / netconn.c
index d72dffed91e56f39b1d2521f7009acde343c7b31..32e2f89a5c6aac24b026478b5a437a2b1da893f2 100755 (executable)
--- a/netconn.c
+++ b/netconn.c
@@ -695,10 +695,10 @@ int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length,
                        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;
@@ -765,7 +765,7 @@ int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length,
                                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);
@@ -793,7 +793,7 @@ int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length,
                                }
                                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
@@ -869,7 +869,7 @@ int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length,
                        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:
@@ -891,20 +891,18 @@ int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length,
                                {
                                        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;
@@ -944,7 +942,7 @@ void NetConn_ClientFrame(void)
                {
                        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;
@@ -952,14 +950,14 @@ void NetConn_ClientFrame(void)
                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");
                }
@@ -1258,7 +1256,7 @@ int NetConn_ServerParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length,
                                                                {
                                                                        // 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