aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog4
-rw-r--r--libjava/name-finder.cc4
2 files changed, 7 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 860b81d..c3364d0 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2001-10-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ * name-finder.cc (_Jv_name_finder::lookup): Check for NULL dli_sname.
+
2001-10-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* java/util/HashMap.java (HashEntry.clone): Removed.
diff --git a/libjava/name-finder.cc b/libjava/name-finder.cc
index 1533e08..36726bd 100644
--- a/libjava/name-finder.cc
+++ b/libjava/name-finder.cc
@@ -147,10 +147,12 @@ _Jv_name_finder::lookup (void *p)
{
if (dl_info.dli_fname)
strncpy (file_name, dl_info.dli_fname, sizeof file_name);
- strncpy (method_name, dl_info.dli_sname, sizeof method_name);
+ if (dl_info.dli_sname)
+ strncpy (method_name, dl_info.dli_sname, sizeof method_name);
/* Don't trust dladdr() if the address is from the main program. */
if (dl_info.dli_fname != NULL
+ && dl_info.dli_sname != NULL
&& (_Jv_argv == NULL || strcmp (file_name, _Jv_argv[0]) != 0))
return true;
}