Previosuly, we would catch and report an unset GLAZE_LIBGL variable
with a clean error message so that the user would know to set this
variable. Similarly, if the variable was set to an incorrect filename,
that would also result in a good error message.
But, if the user happened to set GLAZE_LIBGL to an empty string, then
Glaze would march on and end up triggering the dlsym behavior where a
NULL handle results in a lookup in the local program. This would then
trigger infinite recursion in the resolving of the ifunc symbol and a
not-very-useful segfault.
We avoid all that by noticing the empty string up front and giving the
user the useful error message.
libgl_path = getenv ("GLAZE_LIBGL_64_AUTO");
#endif
- if (libgl_path == NULL) {
+ if (libgl_path == NULL || strlen (libgl_path) == 0) {
fprintf (stderr,
"Error: Failed to detect OpenGL library.\n"
"Please set GLAZE_LIBGL to path of real libGL.so\n");