svn commit: r315701 - in head/sys: amd64/cloudabi32 amd64/cloudabi64 arm/cloudabi32 arm64/cloudabi64 i386/cloudabi32
Ed Schouten
ed at FreeBSD.org
Wed Mar 22 07:05:28 UTC 2017
Author: ed
Date: Wed Mar 22 07:05:27 2017
New Revision: 315701
URL: https://svnweb.freebsd.org/changeset/base/315701
Log:
Set the interpreter path to /nonexistent.
CloudABI executables are statically linked and don't have an
interpreter. Setting the interpreter path to NULL used to work
previously, but r314851 introduced code that checks the string
unconditionally. Running CloudABI executables now causes a null pointer
dereference.
Looking at the rest of imgact_elf.c, it seems various other codepaths
already leaned on the fact that the interpreter path is set. Let's just
go ahead and pick an obviously incorrect interpreter path to appease
imgact_elf.c.
MFC after: 1 week
Modified:
head/sys/amd64/cloudabi32/cloudabi32_sysvec.c
head/sys/amd64/cloudabi64/cloudabi64_sysvec.c
head/sys/arm/cloudabi32/cloudabi32_sysvec.c
head/sys/arm64/cloudabi64/cloudabi64_sysvec.c
head/sys/i386/cloudabi32/cloudabi32_sysvec.c
Modified: head/sys/amd64/cloudabi32/cloudabi32_sysvec.c
==============================================================================
--- head/sys/amd64/cloudabi32/cloudabi32_sysvec.c Wed Mar 22 06:43:10 2017 (r315700)
+++ head/sys/amd64/cloudabi32/cloudabi32_sysvec.c Wed Mar 22 07:05:27 2017 (r315701)
@@ -228,4 +228,5 @@ Elf32_Brandinfo cloudabi32_brand = {
.machine = EM_386,
.sysvec = &cloudabi32_elf_sysvec,
.compat_3_brand = "CloudABI",
+ .interp_path = "/nonexistent",
};
Modified: head/sys/amd64/cloudabi64/cloudabi64_sysvec.c
==============================================================================
--- head/sys/amd64/cloudabi64/cloudabi64_sysvec.c Wed Mar 22 06:43:10 2017 (r315700)
+++ head/sys/amd64/cloudabi64/cloudabi64_sysvec.c Wed Mar 22 07:05:27 2017 (r315701)
@@ -214,4 +214,5 @@ Elf64_Brandinfo cloudabi64_brand = {
.sysvec = &cloudabi64_elf_sysvec,
.flags = BI_CAN_EXEC_DYN,
.compat_3_brand = "CloudABI",
+ .interp_path = "/nonexistent",
};
Modified: head/sys/arm/cloudabi32/cloudabi32_sysvec.c
==============================================================================
--- head/sys/arm/cloudabi32/cloudabi32_sysvec.c Wed Mar 22 06:43:10 2017 (r315700)
+++ head/sys/arm/cloudabi32/cloudabi32_sysvec.c Wed Mar 22 07:05:27 2017 (r315701)
@@ -190,4 +190,5 @@ Elf32_Brandinfo cloudabi32_brand = {
.machine = EM_ARM,
.sysvec = &cloudabi32_elf_sysvec,
.compat_3_brand = "CloudABI",
+ .interp_path = "/nonexistent",
};
Modified: head/sys/arm64/cloudabi64/cloudabi64_sysvec.c
==============================================================================
--- head/sys/arm64/cloudabi64/cloudabi64_sysvec.c Wed Mar 22 06:43:10 2017 (r315700)
+++ head/sys/arm64/cloudabi64/cloudabi64_sysvec.c Wed Mar 22 07:05:27 2017 (r315701)
@@ -183,4 +183,5 @@ Elf64_Brandinfo cloudabi64_brand = {
.sysvec = &cloudabi64_elf_sysvec,
.flags = BI_CAN_EXEC_DYN,
.compat_3_brand = "CloudABI",
+ .interp_path = "/nonexistent",
};
Modified: head/sys/i386/cloudabi32/cloudabi32_sysvec.c
==============================================================================
--- head/sys/i386/cloudabi32/cloudabi32_sysvec.c Wed Mar 22 06:43:10 2017 (r315700)
+++ head/sys/i386/cloudabi32/cloudabi32_sysvec.c Wed Mar 22 07:05:27 2017 (r315701)
@@ -201,4 +201,5 @@ Elf32_Brandinfo cloudabi32_brand = {
.machine = EM_386,
.sysvec = &cloudabi32_elf_sysvec,
.compat_3_brand = "CloudABI",
+ .interp_path = "/nonexistent",
};
More information about the svn-src-all
mailing list