--- appl/telnet/telnetd/telnetd.c 25 Apr 2005 13:15:15 -0000 1.75 +++ appl/telnet/telnetd/telnetd.c 1 Jul 2005 13:40:23 -0000 @@ -778,10 +778,17 @@ if(f == NULL) f = fopen(SYSCONFDIR "/issue", "r"); if(f){ - while(fgets(buf, sizeof(buf)-2, f)){ + while(fgets(buf, sizeof(buf), f) != NULL) { size_t len = strcspn(buf, "\r\n"); - len = strlcpy(buf + len, "\r\n", sizeof(buf) - len); - writenet((unsigned char*)buf, len); + if(len == strlen(buf)) { + /* there's no newline */ + writenet((unsigned char*)buf, len); + } else { + /* replace newline with \r\n */ + buf[len] = '\0'; + writenet((unsigned char*)buf, len); + writenet((unsigned char*)"\r\n", 2); + } } fclose(f); }