summaryrefslogtreecommitdiff
path: root/libjava/java/lang/natSystem.cc
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-14 14:34:21 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-14 14:34:21 +0000
commit611d57f3241cb4eee320e205f3d695a3c8d21a2e (patch)
treef2966e59c9f3c09ec6484a7f905e07de8c1416ae /libjava/java/lang/natSystem.cc
parent2e9da478edf45047e522074479ad7646cb4c4e68 (diff)
downloadgcc-611d57f3241cb4eee320e205f3d695a3c8d21a2e.tar.gz
2004-06-14 Andrew Haley <aph@redhat.com>
* java/lang/System.java: (getenv0): New method. (getenv): Add security check. Do the right thing. * java/lang/natSystem.cc (getenv0): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83107 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/natSystem.cc')
-rw-r--r--libjava/java/lang/natSystem.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc
index 4a08bb138bf..ffb26a3cf80 100644
--- a/libjava/java/lang/natSystem.cc
+++ b/libjava/java/lang/natSystem.cc
@@ -142,3 +142,16 @@ java::lang::System::isWordsBigEndian (void)
u.lval = 1;
return u.cval == 0;
}
+
+jstring
+java::lang::System::getenv0 (jstring name)
+{
+ jint len = _Jv_GetStringUTFLength (name);
+ char buf[len + 1];
+ jsize total = JvGetStringUTFRegion (name, 0, name->length(), buf);
+ buf[total] = '\0';
+ const char *value = ::getenv (buf);
+ if (value == NULL)
+ return NULL;
+ return JvNewStringLatin1 (value);
+}