Blob Blame History Raw
diff -up daemon-1.0.1/src/native/unix/native/jsvc-unix.c.execve-path-warning daemon-1.0.1/src/native/unix/native/jsvc-unix.c
--- src/native/unix/native/jsvc-unix.c
+++ src/native/unix/native/jsvc-unix.c
@@ -635,6 +635,15 @@ int main(int argc, char *argv[]) {
         char *p1=NULL;
         char *p2=NULL;
 
+	/* We don't want to use a form of exec() that searches the
+	   PATH, so require that argv[0] be either an absolute or
+	   relative path.  Error out if this isn't the case.  */
+	tmp=strchr(old,'/');
+	if (tmp==NULL) {
+	  log_error("JSVC re-exec requires execution with an absolute or relative path");
+	  return(1);
+	}
+
         p1=strdup(libf);
         tmp=strrchr(p1,'/');
         if (tmp!=NULL) tmp[0]='\0';