diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 4 | ||||
-rw-r--r-- | libjava/name-finder.cc | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a058e68eb7f..03e66b583a0 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,7 @@ +2001-08-26 Bryce McKinlay <bryce@waitaki.otago.ac.nz> + + * name-finder.cc (lookup): Ignore a null dli_fname from dladdr. + 2001-08-23 Tom Tromey <tromey@redhat.com> * java/lang/reflect/Field.java (toString): Use diff --git a/libjava/name-finder.cc b/libjava/name-finder.cc index 3baa6e3c6bf..1533e0858d2 100644 --- a/libjava/name-finder.cc +++ b/libjava/name-finder.cc @@ -145,11 +145,13 @@ _Jv_name_finder::lookup (void *p) if (dladdr (p, &dl_info)) { - strncpy (file_name, dl_info.dli_fname, sizeof file_name); + 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); /* Don't trust dladdr() if the address is from the main program. */ - if (_Jv_argv == NULL || strcmp (file_name, _Jv_argv[0]) != 0) + if (dl_info.dli_fname != NULL + && (_Jv_argv == NULL || strcmp (file_name, _Jv_argv[0]) != 0)) return true; } } |