File icedtea6-1.9.4-realpath.patch of Package java-1_6_0-openjdk
Index: icedtea6-1.9.4/plugin/icedteanp/IcedTeaNPPlugin.cc
===================================================================
--- icedtea6-1.9.4.orig/plugin/icedteanp/IcedTeaNPPlugin.cc 2011-01-17 13:53:33.663627966 +0100
+++ icedtea6-1.9.4/plugin/icedteanp/IcedTeaNPPlugin.cc 2011-01-17 14:17:53.860000617 +0100
@@ -2076,6 +2076,7 @@
}
NPError np_error = NPERR_NO_ERROR;
gchar* filename = NULL;
+ gchar* rfilename = NULL;
// If P_tmpdir does not exist, try /tmp directly
@@ -2142,12 +2143,7 @@
np_error = NPERR_GENERIC_ERROR;
goto cleanup_data_directory;
}
- filename = (gchar*) malloc(sizeof(gchar)*1024);
- filename_size = readlink(info.dli_fname, filename, 1023);
- if (filename_size >= 0)
- {
- filename[filename_size] = '\0';
- }
+ filename = (gchar*) malloc(sizeof(gchar)*PATH_MAX);
if (!filename)
{
@@ -2155,12 +2151,14 @@
np_error = NPERR_OUT_OF_MEMORY_ERROR;
goto cleanup_data_directory;
}
-
- if (filename_size <= 0)
+
+ rfilename = realpath(info.dli_fname, filename);
+ if (!rfilename)
{
free(filename);
filename = g_strdup(info.dli_fname);
}
+ PLUGIN_DEBUG("realpath(\"%s\") == \"%s\"\n", info.dli_fname, filename);
appletviewer_executable = g_strdup_printf ("%s/../../bin/java",
dirname (filename));