svn commit: r312874 - stable/11/sys/amd64/linux

Tijl Coosemans tijl at FreeBSD.org
Fri Jan 27 10:06:22 UTC 2017


Author: tijl
Date: Fri Jan 27 10:06:20 2017
New Revision: 312874
URL: https://svnweb.freebsd.org/changeset/base/312874

Log:
  MFC r312699:
  
  Apply r210555 to 64 bit linux support:
  
  The interpreter name should no longer be treated as a buffer that can be
  overwritten.
  
  PR:		216346

Modified:
  stable/11/sys/amd64/linux/linux_sysvec.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- stable/11/sys/amd64/linux/linux_sysvec.c	Fri Jan 27 10:05:17 2017	(r312873)
+++ stable/11/sys/amd64/linux/linux_sysvec.c	Fri Jan 27 10:06:20 2017	(r312874)
@@ -718,7 +718,7 @@ exec_linux_imgact_try(struct image_param
 {
 	const char *head = (const char *)imgp->image_header;
 	char *rpath;
-	int error = -1, len;
+	int error = -1;
 
 	/*
 	 * The interpreter for shell scripts run from a linux binary needs
@@ -736,17 +736,12 @@ exec_linux_imgact_try(struct image_param
 			linux_emul_convpath(FIRST_THREAD_IN_PROC(imgp->proc),
 			    imgp->interpreter_name, UIO_SYSSPACE,
 			    &rpath, 0, AT_FDCWD);
-			if (rpath != NULL) {
-				len = strlen(rpath) + 1;
-
-				if (len <= MAXSHELLCMDLEN)
-					memcpy(imgp->interpreter_name,
-					    rpath, len);
-				free(rpath, M_TEMP);
-			}
+			if (rpath != NULL)
+				imgp->args->fname_buf =
+				    imgp->interpreter_name = rpath;
 		}
 	}
-	return(error);
+	return (error);
 }
 
 #define	LINUX_VSYSCALL_START		(-10UL << 20)


More information about the svn-src-all mailing list