]> PatchyGit - patchyircd.git/commitdiff
Fixed ping to not segfault when matterbridge
authorSam Smith <sam@patchysicp.xyz>
Sun, 24 Apr 2022 21:57:41 +0000 (14:57 -0700)
committerSam Smith <sam@patchysicp.xyz>
Sun, 24 Apr 2022 21:57:41 +0000 (14:57 -0700)
irc.c

diff --git a/irc.c b/irc.c
index cb9db64..b245d4d 100644 (file)
--- a/irc.c
+++ b/irc.c
@@ -5,14 +5,9 @@ void processPacket(struct client_data *client) {
        size_t packetLen = client->bufLen;
        if(strncmp(packet, "PING", 4) == 0) {
                char data[1024];
-               packet[1] = 'O';
-               // Mem unsafe time
-               strcpy(packet+5+strlen("irc.patchysicp.xyz "), packet+4);
-               strcpy(packet+5, "irc.patchysicp.xyz ");
-               packet[5+strlen("irc.patchysicp.xyz ")] = ':';
-               strcpy(data, ":irc.patchysicp.xyz ");
-               strcpy(data+strlen(":irc.patchysicp.xyz "), packet);
-               data[strlen(":irc.patchysicp.xyz")] = ' ';
+               strcpy(data, ":irc.patchysicp.xyz PONG irc.patchysicp.xyz ");
+               strcpy(data+strlen(":irc.patchysicp.xyz PONG irc.patchysicp.xyz :"), packet+5);
+               data[strlen(":irc.patchysicp.xyz PONG irc.patchysicp.xyz ")] = ':';
                send_log(client->FD, data, strlen(data), 0);
        } else if(strncmp(packet, "NICK ", 5) == 0) {
                // User now registered