diff options
author | imp <imp@FreeBSD.org> | 2013-04-16 22:09:08 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2013-04-16 22:09:08 +0000 |
commit | 761f4524d4ea4483a6ab5a48b3dca217d6c47f3a (patch) | |
tree | 30f2ac0f8cc343abb8ee9c598344aef07c22a1dd /sys/kern/kern_environment.c | |
parent | 6e01debb4650842ddd6e3274e013a2a568da9cff (diff) | |
download | FreeBSD-src-761f4524d4ea4483a6ab5a48b3dca217d6c47f3a.zip FreeBSD-src-761f4524d4ea4483a6ab5a48b3dca217d6c47f3a.tar.gz |
r249408 and r249436 cause a NULL pointer dereference on the CUBIEBOARD
since it doesn't set the kernel envrionment at all. Work around this
by making sure kern_envp is non-NULL before dereferencing it.
Diffstat (limited to 'sys/kern/kern_environment.c')
-rw-r--r-- | sys/kern/kern_environment.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c index 369c860..e89b3f7 100644 --- a/sys/kern/kern_environment.c +++ b/sys/kern/kern_environment.c @@ -231,7 +231,7 @@ init_dynamic_kenv(void *data __unused) kenvp = malloc((KENV_SIZE + 1) * sizeof(char *), M_KENV, M_WAITOK | M_ZERO); i = 0; - if (*kern_envp != '\0') { + if (kern_envp && *kern_envp != '\0') { for (cp = kern_envp; cp != NULL; cp = kernenv_next(cp)) { len = strlen(cp) + 1; if (len > KENV_MNAMELEN + 1 + KENV_MVALLEN + 1) { |