Blob Blame History Raw
Fix an int-conversion issue (NULL instead the integer constant 0).
Fix incompatible pointer types by adding explicit casts to the
expected types.

diff -ur netkit-rsh-0.17.orig/rexecd/rexecd.c netkit-rsh-0.17/rexecd/rexecd.c
--- netkit-rsh-0.17.orig/rexecd/rexecd.c	2023-12-20 13:52:56.259400879 +0100
+++ netkit-rsh-0.17/rexecd/rexecd.c	2023-12-21 10:56:31.838691420 +0100
@@ -192,7 +192,7 @@
 		int r;
 		char remote_hostname[NI_MAXHOST] = {};
 
-		r = getnameinfo((struct sockaddr *) &from, sizeof(struct sockaddr_storage), remote_hostname, NI_MAXHOST, NULL, NULL, 0);
+		r = getnameinfo((struct sockaddr *) &from, sizeof(struct sockaddr_storage), remote_hostname, NI_MAXHOST, NULL, 0, 0);
 
 		if (r) {
 			fprintf(stderr, "rexecd: getnameinfo: %s\n", gai_strerror(r));
diff -ur netkit-rsh-0.17.orig/rlogind/auth.c netkit-rsh-0.17/rlogind/auth.c
--- netkit-rsh-0.17.orig/rlogind/auth.c	2023-12-20 13:52:56.243401041 +0100
+++ netkit-rsh-0.17/rlogind/auth.c	2023-12-21 10:55:35.644285484 +0100
@@ -147,7 +147,7 @@
 	return -1;
     }
 
-    pam_get_item(pamh, PAM_USER, &ln);
+    pam_get_item(pamh, PAM_USER, (const void **) &ln);
     if (!ln || !*ln) {
 	/*
 	 * Authentication wasn't adequate for requirements.
diff -ur netkit-rsh-0.17.orig/rshd/rshd.c netkit-rsh-0.17/rshd/rshd.c
--- netkit-rsh-0.17.orig/rshd/rshd.c	2023-12-20 13:52:56.259400879 +0100
+++ netkit-rsh-0.17/rshd/rshd.c	2023-12-21 10:58:04.627707239 +0100
@@ -315,8 +315,8 @@
 
 	if (! inet_ntop(fromp->sa_family,
 		(( fromp->sa_family == AF_INET6 )
-		? ( &((struct sockaddr_in6 *)fromp)->sin6_addr )
-		: ( &((struct sockaddr_in *)fromp)->sin_addr )),
+		? ((void *) &((struct sockaddr_in6 *)fromp)->sin6_addr )
+		: ((void *) &((struct sockaddr_in *)fromp)->sin_addr )),
 		remote_address, sizeof(remote_address))) {
 	    syslog(LOG_NOTICE|LOG_AUTH,
 	    	"Failed to retrieve the socket remote address");
@@ -364,8 +364,8 @@
 
 	    if (inet_ntop(sa->sa_family,
 		(( sa->sa_family == AF_INET6 )
-		? ( &((struct sockaddr_in6 *)sa)->sin6_addr )
-		: ( &((struct sockaddr_in *)sa)->sin_addr )),
+		? ((void *) &((struct sockaddr_in6 *)sa)->sin6_addr )
+		: ((void *) &((struct sockaddr_in *)sa)->sin_addr )),
 		res_address, sizeof(res_address))
 		&& strcmp(remote_address, res_address) == 0) {
 		    freeaddrinfo(res0);