diff --git a/src/misc.c b/src/misc.c index 4876fb608..facff866c 100644 --- a/src/misc.c +++ b/src/misc.c @@ -260,14 +260,16 @@ char *splitnick(char **blah) void remove_crlf(char **line) { - char *p; + char *p = *line; - p = strchr(*line, '\n'); - if (p != NULL) - *p = 0; - p = strchr(*line, '\r'); - if (p != NULL) - *p = 0; + while (*p) { + if (*p == '\r' || *p == '\n') + { + *p = 0; + break; + } + p++; + } } char *newsplit(char **rest) diff --git a/src/mod/server.mod/server.c b/src/mod/server.mod/server.c index 73d1361bb..3e78c89f4 100644 --- a/src/mod/server.mod/server.c +++ b/src/mod/server.mod/server.c @@ -810,10 +810,9 @@ static void queue_server(int which, char *msg, int len) /* Remove \r\n. We will add these back when we send the text to the server. * - Wcc [01/09/2004] */ - strncpy(buf, msg, sizeof buf); + strlcpy(buf, msg, sizeof buf); msg = buf; remove_crlf(&msg); - buf[510] = 0; len = strlen(buf); /* No queue for PING and PONG - drummer */