natFileWin32.cc (isAbsolute): Check path length before looking at any characters.
authorVladimir Puskas <vpuskas@eunet.yu>
Tue, 21 Jan 2003 20:45:57 +0000 (20:45 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 21 Jan 2003 20:45:57 +0000 (20:45 +0000)
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.

From-SVN: r61566

libjava/ChangeLog
libjava/java/io/natFilePosix.cc
libjava/java/io/natFileWin32.cc

index 8112a68b43d76a9aeda62d264408e9685b54c5e9..4b44d80b7354c9d39b96bb4f3083fce1bee4c36c 100644 (file)
@@ -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.
index f9fe78ef203c212bb562667e90618f816b736484..4946cfccae88476998131b97b46ae54fb5930599 100644 (file)
@@ -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
index ebdaeab1d78f046b1246a87cd13d5e5588617342..9bf0eefb74e59d18d010c4372d0d83bb8dc36615 100644 (file)
@@ -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;