shithub: fingerd

Download patch

ref: f6ca02a2b05e03fb20cb3958c6f80dcc6e6092ee
parent: 2d06a930cc56ebbb4b6bdff969b3306a9a61c3c3
author: sirjofri <sirjofri@sirjofri.de>
date: Tue Apr 27 10:56:18 EDT 2021

fix: don't wait for \n, but \r instead (RFC)

--- a/fingerd.c
+++ b/fingerd.c
@@ -42,12 +42,12 @@
 	fd = open(file, OREAD);
 	if (fd < 0){
 		if (perr)
-			print("File %s not Found.\n", file);
+			print("File %s not Found.\r\n", file);
 		return 0;
 	}
 	while ((n = read(fd, buf, BUFSIZ)) > 0)
 		if (write(1, buf, n) != n)
-			print("Error writing data!\n");
+			print("Error writing data!\r\n");
 	close(fd);
 	return 1;
 }
@@ -67,7 +67,7 @@
 void
 printuserinfo(char *user)
 {
-	print("%s\n", user);
+	print("%s\r\n", user);
 }
 
 void
@@ -78,15 +78,15 @@
 	int fd, n, i;
 	fd = open("/usr", OREAD);
 	if (fd < 0){
-		print("Can't list users.\n");
+		print("Can't list users.\r\n");
 		return;
 	}
 	n = dirreadall(fd, &dirbuf);
 	close(fd);
 	if (n)
-		print("User list:\n");
+		print("User list:\r\n");
 	else
-		print("No users.\n");
+		print("No users.\r\n");
 	for (i = 0; i < n; i++){
 		path = smprint("/usr/%s/finger/finger", dirbuf[i].name);
 		if (vaccess(path)){
@@ -100,7 +100,7 @@
 printnouser(char *user)
 {
 	if (!cat(usernotfound, 0))
-		print("User %s not found or private.\n", user);
+		print("User %s not found or private.\r\n", user);
 }
 
 void
@@ -107,7 +107,7 @@
 printnofile(char *file)
 {
 	if (!cat(usernotfound, 0))
-		print("File %s not found.\n", file);
+		print("File %s not found.\r\n", file);
 }
 
 void
@@ -124,7 +124,7 @@
 	} ARGEND
 
 	bin = Bfdopen(0, OREAD);
-	req = Brdline(bin, '\n');
+	req = Brdline(bin, '\r');
 	if (req == nil)
 		sysfatal("bad read: %r");
 	n = Blinelen(bin);
@@ -133,7 +133,7 @@
 	switch(n){
 	case 1:  /* server request */
 		if (!cat(motd, 0))
-			print("motd not found.\n");
+			print("motd not found.\r\n");
 		if (puserlist)
 			printuserlist();
 		break;