svn commit: r312699 - head/sys/amd64/linux
Tijl Coosemans
tijl at FreeBSD.org
Tue Jan 24 16:14:01 UTC 2017
Author: tijl
Date: Tue Jan 24 16:13:59 2017
New Revision: 312699
URL: https://svnweb.freebsd.org/changeset/base/312699
Log:
Apply r210555 to 64 bit linux support:
The interpreter name should no longer be treated as a buffer that can be
overwritten.
PR: 216346
MFC after: 3 days
Modified:
head/sys/amd64/linux/linux_sysvec.c
Modified: head/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- head/sys/amd64/linux/linux_sysvec.c Tue Jan 24 16:05:42 2017 (r312698)
+++ head/sys/amd64/linux/linux_sysvec.c Tue Jan 24 16:13:59 2017 (r312699)
@@ -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