Commit Diff


commit - 6131822af6c0e2476dd539239d497dc0067271bc
commit + 9cd3494de92eccaa201f42fc8b02fc68c752aca8
blob - 8ac5471ad488bfd36eaf1067969263ff6aa5778f
blob + 93ee07e82a0100b125f359110e35e285e0a83ab3
--- src/ngircd/irc-login.c
+++ src/ngircd/irc-login.c
@@ -847,9 +847,6 @@ cb_Read_Auth_Result(int r_fd, UNUSED short events)
 	if (len == 0)
 		return;
 
-	/* Make sure authenticator sub-process is dead now ... */
-	Proc_Kill(proc);
-
 	if (len != sizeof(result)) {
 		Log(LOG_CRIT, "Auth: Got malformed result!");
 		Reject_Client(client);
blob - 11cb0396644548387926407913f09530e3373dcd
blob + 1e8cac36eea9d92a9eea14ba0b4797e5cbe3a063
--- src/ngircd/proc.c
+++ src/ngircd/proc.c
@@ -119,6 +119,8 @@ Proc_GenericSignalHandler(int Signal)
 
 /**
  * Read bytes from a pipe of a forked child process.
+ * In addition, this function makes sure that the child process is dead
+ * after all data has been read or a fatal error occurred.
  */
 GLOBAL size_t
 Proc_Read(PROC_STAT *proc, void *buffer, size_t buflen)