diff options
author | phk <phk@FreeBSD.org> | 2006-03-09 09:29:41 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2006-03-09 09:29:41 +0000 |
commit | b7db2706e8c2834f08ee9c367106da80a261eeb4 (patch) | |
tree | 6038a90596db091c98c7c6d911f0f74da2507dac /sys/kern/kern_environment.c | |
parent | 2ba86f7da2738cd4764014a50f4e8e0af1642455 (diff) | |
download | FreeBSD-src-b7db2706e8c2834f08ee9c367106da80a261eeb4.zip FreeBSD-src-b7db2706e8c2834f08ee9c367106da80a261eeb4.tar.gz |
Ignore kenv strings which overflow the room we have, rather than pretend
we have room for them.
Diffstat (limited to 'sys/kern/kern_environment.c')
-rw-r--r-- | sys/kern/kern_environment.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c index 9bb8814..c15e58d 100644 --- a/sys/kern/kern_environment.c +++ b/sys/kern/kern_environment.c @@ -211,7 +211,12 @@ init_dynamic_kenv(void *data __unused) for (cp = kern_envp; cp != NULL; cp = kernenv_next(cp)) { len = strlen(cp) + 1; kenvp[i] = malloc(len, M_KENV, M_WAITOK); - strcpy(kenvp[i++], cp); + if (i < KENV_SIZE) + strcpy(kenvp[i++], cp); + else + printf( + "WARNING: too many kenv strings, ignoring %s\n", + cp); } kenvp[i] = NULL; |