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
This commit is contained in:
parent
bd84f70044
commit
86e01d5add
@ -718,7 +718,7 @@ exec_linux_imgact_try(struct image_params *imgp)
|
||||
{
|
||||
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_params *imgp)
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user