closed some memory leaks
authorFelix Morgner <felix.morgner@gmail.com>
Fri, 6 Feb 2015 12:07:01 +0000 (13:07 +0100)
committerFelix Morgner <felix.morgner@gmail.com>
Fri, 6 Feb 2015 12:23:11 +0000 (13:23 +0100)
src/ban.c
src/client.c
src/log.c

index c8b868809f0090a78465785ad6cdf2e097f523bc..4cc63181737229278dd7b06dc1cfbbcbf29ff76a 100644 (file)
--- a/src/ban.c
+++ b/src/ban.c
@@ -90,8 +90,12 @@ void Ban_UserBan(client_t *client, char *reason)
 
        SSLi_hash2hex(ban->hash, hexhash);
 
+       char *clientAddressString = Util_clientAddressToString(client);
+
        Log_info_client(client, "User kickbanned. Reason: '%s' Hash: %s IP: %s Banned for: %d seconds",
-               ban->reason, hexhash, Util_clientAddressToString(client), ban->duration);
+               ban->reason, hexhash, clientAddressString, ban->duration);
+
+       free(clientAddressString);
 }
 
 
index ae495008ff73bca29b4c2e9249c0dcaae1977f2a..b3b12b75030d3f76821bcaaeb2ef1995156d41e8 100644 (file)
@@ -834,7 +834,9 @@ int Client_read_udp(int udpsock)
                        if (memcmp(itraddress, fromaddress, addresslength) == 0) {
                                if (checkDecrypt(itr, encrypted, buffer, len)) {
                                        memcpy(itr->key, key, KEY_LENGTH);
-                                       Log_info_client(itr, "New UDP connection from %s on port %d", Util_clientAddressToString(itr), fromport);
+                                       char* clientAddressString = Util_clientAddressToString(itr);
+                                       Log_info_client(itr, "New UDP connection from %s on port %d", clientAddressString, fromport);
+                                       free(clientAddressString);
                                        memcpy(&itr->remote_udp, &from, sizeof(struct sockaddr_storage));
                                        break;
                                }
@@ -848,6 +850,9 @@ int Client_read_udp(int udpsock)
        itr->bUDP = true;
        len -= 4; /* Adjust for crypt header */
        msgType = (UDPMessageType_t)((buffer[0] >> 5) & 0x7);
+
+       char *clientAddressString = NULL;
+
        switch (msgType) {
                case UDPVoiceSpeex:
                case UDPVoiceCELTAlpha:
@@ -862,7 +867,9 @@ int Client_read_udp(int udpsock)
                        Client_send_udp(itr, buffer, len);
                        break;
                default:
-                       Log_debug("Unknown UDP message type from %s port %d", Util_clientAddressToString(itr), fromport);
+                       clientAddressString = Util_clientAddressToString(itr);
+                       Log_debug("Unknown UDP message type from %s port %d", clientAddressString, fromport);
+                       free(clientAddressString);
                        break;
        }
 
index 61a92d24994109f34c06f23a1b165a9440ebc096..91ec5b023ed40e0de5d8e407553114fc0f9d78f7 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -191,11 +191,13 @@ void Log_info_client(client_t *client, const char *logstring, ...)
        offset += vsnprintf(&buf[offset], STRSIZE - offset, logstring, argp);
        va_end(argp);
 
+       char *clientAddressString = Util_clientAddressToString(client);
        offset += snprintf(&buf[offset], STRSIZE - offset, " - [%d] %s@%s:%d",
                client->sessionId,
                client->username == NULL ? "" : client->username,
-               Util_clientAddressToString(client),
+               clientAddressString,
                Util_clientAddressToPortTCP(client));
+       free(clientAddressString);
 
        if (termprint)
                fprintf(stderr, "%s\n", buf);