diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2017-05-12 22:48:36 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2017-05-12 22:48:36 +0300 |
commit | 37d630875d33bf3c291026c40bb08d1b6c9edcc8 (patch) | |
tree | 68fb026f54a962cf1d631f010e98681add6ed014 /debian/patches/set-exec-name.diff | |
download | openjdk-8-debian.tar.gz |
Imported debian/openjdk-8_8u131-b11-1debian/8u131-b11-1debian
Diffstat (limited to 'debian/patches/set-exec-name.diff')
-rw-r--r-- | debian/patches/set-exec-name.diff | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/debian/patches/set-exec-name.diff b/debian/patches/set-exec-name.diff new file mode 100644 index 0000000..5c4d954 --- /dev/null +++ b/debian/patches/set-exec-name.diff @@ -0,0 +1,47 @@ +--- openjdk/jdk/src/solaris/bin/java_md.c.orig ++++ openjdk/jdk/src/solaris/bin/java_md.c +@@ -688,8 +688,19 @@ + char buf[PATH_MAX+1]; + int len = readlink(self, buf, PATH_MAX); + if (len >= 0) { ++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL}; ++ const char **prefix; ++ size_t prefix_len = 0; + buf[len] = '\0'; /* readlink doesn't nul terminate */ +- exec_path = JLI_StringDup(buf); ++ for (prefix = prefixes; *prefix; prefix++) { ++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix); ++ if (!strncmp(*prefix, buf, prefix_len)) { ++ prefix_len--; ++ break; ++ } ++ prefix_len = 0; ++ } ++ exec_path = JLI_StringDup(buf + prefix_len); + } + } + #else /* !__solaris__ && !__linux */ +--- openjdk/hotspot/src/os/posix/launcher/java_md.c.orig ++++ openjdk/hotspot/src/os/posix/launcher/java_md.c +@@ -967,8 +967,19 @@ + char buf[PATH_MAX+1]; + int len = readlink(self, buf, PATH_MAX); + if (len >= 0) { +- buf[len] = '\0'; /* readlink doesn't nul terminate */ +- exec_path = JLI_StringDup(buf); ++ buf[len] = '\0'; /* readlink doesn't nul terminate */ ++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL}; ++ const char **prefix; ++ size_t prefix_len = 0; ++ for (prefix = prefixes; *prefix; prefix++) { ++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix); ++ if (!strncmp(*prefix, buf, prefix_len)) { ++ prefix_len--; ++ break; ++ } ++ prefix_len = 0; ++ } ++ exec_path = JLI_StringDup(buf + prefix_len); + } + } + #else /* !__sun && !__linux */ |