diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-21 20:45:57 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-21 20:45:57 +0000 |
commit | e26f5dd19dbe5c9ae96afbfc835c027f7392441a (patch) | |
tree | 57a7bb9a11525f22d2e8a098acd05b80ec513c70 | |
parent | de7a06225b50a4132ca46a86dc4f2adf464445ff (diff) | |
download | gcc-e26f5dd19dbe5c9ae96afbfc835c027f7392441a.tar.gz |
2003-01-21 Vladimir Puskas <vpuskas@eunet.yu>
* java/io/natFileWin32.cc (isAbsolute): Check path length before
looking at any characters.
* java/io/natFilePosix.cc (_stat): Only compute `buf' if it will
be used.
(isAbsolute): Check path's length as well.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61566 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libjava/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/java/io/natFilePosix.cc | 12 | ||||
-rw-r--r-- | libjava/java/io/natFileWin32.cc | 5 |
3 files changed, 17 insertions, 8 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 8112a68b43d..4b44d80b735 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2003-01-21 Vladimir Puskas <vpuskas@eunet.yu> + + * java/io/natFileWin32.cc (isAbsolute): Check path length before + looking at any characters. + * java/io/natFilePosix.cc (_stat): Only compute `buf' if it will + be used. + (isAbsolute): Check path's length as well. + 2003-01-17 Mark Wielaard <mark@klomp.org> * Makefile.am (core_java_source_files): Add VMObjectStreamClass.java. diff --git a/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc index f9fe78ef203..4946cfccae8 100644 --- a/libjava/java/io/natFilePosix.cc +++ b/libjava/java/io/natFilePosix.cc @@ -1,6 +1,6 @@ // natFile.cc - Native part of File class for POSIX. -/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation This file is part of libgcj. @@ -60,14 +60,14 @@ java::io::File::_access (jint query) jboolean java::io::File::_stat (jint query) { + if (query == ISHIDDEN) + return getName()->charAt(0) == '.'; + +#ifdef HAVE_STAT char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1); jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); buf[total] = '\0'; - if (query == ISHIDDEN) - return (getName()->charAt(0) == '.'); - -#ifdef HAVE_STAT struct stat sb; if (::stat (buf, &sb)) return false; @@ -131,7 +131,7 @@ java::io::File::getCanonicalPath (void) jboolean java::io::File::isAbsolute (void) { - return path->charAt(0) == '/'; + return path->length() > 0 && path->charAt(0) == '/'; } jobjectArray diff --git a/libjava/java/io/natFileWin32.cc b/libjava/java/io/natFileWin32.cc index ebdaeab1d78..9bf0eefb74e 100644 --- a/libjava/java/io/natFileWin32.cc +++ b/libjava/java/io/natFileWin32.cc @@ -1,6 +1,6 @@ // natFileWin32.cc - Native part of File class. -/* Copyright (C) 1998, 1999, 2002 Red Hat, Inc. +/* Copyright (C) 1998, 1999, 2002, 2003 Red Hat, Inc. This file is part of libgcj. @@ -119,7 +119,8 @@ java::io::File::getCanonicalPath (void) jboolean java::io::File::isAbsolute (void) { - if (path->charAt(0) == '/' || path->charAt(0) == '\\') + if (path->length() > 0 + && (path->charAt(0) == '/' || path->charAt(0) == '\\')) return true; if (path->length() < 3) return false; |