User account creation filtered due to spam.
libgcj passes class names to dlopen to find shared
libraries implementing the class. In particular,
in the case of inner classes, this name will contains
However, the Linux dlopen implementation interprets '$'
to signify a 'dynamic string token' that is subject to
replacement. Currently, Linux implements the dynamic
string tokens $ORIGIN and $PLATFORM.
Thus, if an inner class happens to be named ORIGIN or
PLATFORM, dlopen will substitute those strings, and
either the intended shared library will not be found,
or possibly even an incorrect library will be loaded.
Furthermore, there is a bug in glibc 2.2.5 that causes
dlopen to go into an endless loop if the path contains
a '$' that is not followed by one of the recognized
dynamic string tokens. This causes libgcj to hang
whenever it tries to load an inner class.
Linux (glibc 2.x, x >= 1)
Date: 11 Oct 2002 22:10:37 -0000
Module name: gcc
Changes by: firstname.lastname@example.org 2002-10-11 15:10:37
libjava : ChangeLog
Fix for PR libgcj/8142
* java/lang/natClassLoader.cc (findClass): Skip inner classes when
loading native modules.
Responsible-Changed-Why: I'm handling the administrivia
State-Changed-Why: A patch to fix this was checked in