threads / discuss / 953

execlp sentinel

Subject: execlp sentinel

## tl;dr

One message between Jun 15, 2005 and Jun 15, 2005.

replies: 0people: 1as markdown or json

Jason Wright· Jun 15, 2005, 15:33 UTC · lore

Another thing I ran into when porting cogito-0.11.3 to OpenBSD... the NULL last argument to execlp() must be cast to a pointer type (NULL is an integer type on OpenBSD) in order for it to match as being a proper sentinel value.

--Jason L. Wright

--- diff.c.orig Thu Jun 9 05:15:09 2005 +++ diff.c Wed Jun 15 11:20:08 2005

@@ -157,7 +157,7 @@ static void builtin_diff(const char *nam
 			exit(0);
 	}
 	fflush(NULL);
-	execlp("/bin/sh","sh", "-c", cmd, NULL);
+	execlp("/bin/sh","sh", "-c", cmd, (void *)NULL);
 }
 
 struct diff_filespec *alloc_filespec(const char *path)
@@ -518,7 +518,7 @@ static void run_external_diff(const char
 				execvp(pgm, (char *const*) exec_arg);
 			}
 			else
-				execlp(pgm, pgm, name, NULL);
+				execlp(pgm, pgm, name, (void *)NULL);
 		}
 		/*
 		 * otherwise we use the built-in one.
--- merge-cache.c.orig	Tue Jun 14 17:07:44 2005
+++ merge-cache.c	Tue Jun 14 17:07:50 2005
@@ -23,7 +23,7 @@ static void run_program(void)
 			    arguments[5],
 			    arguments[6],
 			    arguments[7],
-			    NULL);
+			    (void *)NULL);
 		die("unable to execute '%s'", pgm);
 	}
 	if (waitpid(pid, &status, 0) < 0 || !WIFEXITED(status) || WEXITSTATUS(status)) {
--- rsh.c.orig	Wed Jun 15 11:21:57 2005
+++ rsh.c	Wed Jun 15 11:22:08 2005
@@ -57,7 +57,7 @@ int setup_connection(int *fd_in, int *fd
 		close(sv[1]);
 		dup2(sv[0], 0);
 		dup2(sv[0], 1);
-		execlp("ssh", "ssh", host, command, NULL);
+		execlp("ssh", "ssh", host, command, (void *)NULL);
 	}
 	close(sv[0]);
 	*fd_in = sv[1];

← back to recent threads