fix bug in the filtering of corrupt environment vars

This commit is contained in:
kurt 2007-05-01 02:05:46 +00:00
parent e7d347f1a7
commit 7083038c36
2 changed files with 30 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.36 2007/04/13 00:29:48 kurt Exp $
# $OpenBSD: Makefile,v 1.37 2007/05/01 02:05:46 kurt Exp $
SHARED_ONLY= Yes
ONLY_FOR_ARCHS= amd64 i386
@ -8,8 +8,8 @@ COMMENT-jre= "Java2(TM) Standard Edition Runtime Environment v${V}"
V= 1.5.0
DISTNAME= jdk-1_5_0
PKGNAME= jdk-${V}
PKGNAME-main= jdk-${V}p30
PKGNAME-jre= jre-${V}p30
PKGNAME-main= jdk-${V}p31
PKGNAME-jre= jre-${V}p31
CATEGORIES= devel/jdk java

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-j2se_src_solaris_native_java_lang_ProcessEnvironment_md_c,v 1.3 2007/05/01 02:05:46 kurt Exp $
--- j2se/src/solaris/native/java/lang/ProcessEnvironment_md.c.orig Mon Apr 30 18:01:15 2007
+++ j2se/src/solaris/native/java/lang/ProcessEnvironment_md.c Mon Apr 30 17:20:17 2007
@@ -39,7 +39,8 @@ Java_java_lang_ProcessEnvironment_environ(JNIEnv *env,
result = (*env)->NewObjectArray(env, 2*count, byteArrCls, 0);
if (result == NULL) return NULL;
- for (i = 0; i < count; i++) {
+ count = 0;
+ for (i = 0; environ[i]; i++) {
jsize len = strlen(environ[i]);
const char * varEnd = strchr(environ[i], '=');
/* Ignore corrupted environment variables */
@@ -56,10 +57,11 @@ Java_java_lang_ProcessEnvironment_environ(JNIEnv *env,
(jbyte*) environ[i]);
(*env)->SetByteArrayRegion(env, val, 0, valLength,
(jbyte*) valBeg);
- (*env)->SetObjectArrayElement(env, result, 2*i , var);
- (*env)->SetObjectArrayElement(env, result, 2*i+1, val);
+ (*env)->SetObjectArrayElement(env, result, 2*count , var);
+ (*env)->SetObjectArrayElement(env, result, 2*count+1, val);
(*env)->DeleteLocalRef(env, var);
(*env)->DeleteLocalRef(env, val);
+ count++;
}
}