diff options
Diffstat (limited to 'print/ghostscript9-agpl-base/files/patch-base_gp__unix.c')
-rw-r--r-- | print/ghostscript9-agpl-base/files/patch-base_gp__unix.c | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/print/ghostscript9-agpl-base/files/patch-base_gp__unix.c b/print/ghostscript9-agpl-base/files/patch-base_gp__unix.c deleted file mode 100644 index eb39270d5fb4..000000000000 --- a/print/ghostscript9-agpl-base/files/patch-base_gp__unix.c +++ /dev/null @@ -1,47 +0,0 @@ ---- base/gp_unix.c.orig 2015-03-30 08:21:24 UTC -+++ base/gp_unix.c -@@ -52,6 +52,7 @@ extern char *getenv(const char *); - * and applied as a patch (preferable). - */ - #include <sys/types.h> -+#include <limits.h> - #include <dirent.h> - #include <dlfcn.h> - #include <string.h> -@@ -61,26 +62,25 @@ gp_init(void) - { - DIR* dir = NULL; - struct dirent* dirent; -- char buff[1024]; -+ char buff[PATH_MAX]; - char* pbuff; - void* handle; - void (*gs_shared_init)(void); - -- strncpy(buff, GS_DEVS_SHARED_DIR, sizeof(buff) - 2); -- pbuff = buff + strlen(buff); -- *pbuff++ = '/'; *pbuff = '\0'; -- - dir = opendir(GS_DEVS_SHARED_DIR); - if (dir == 0) return; - - while ((dirent = readdir(dir)) != 0) { -- strncpy(pbuff, dirent->d_name, sizeof(buff) - (pbuff - buff) - 1); -- if ((handle = dlopen(buff, RTLD_NOW)) != 0) { -- if ((gs_shared_init = dlsym(handle, "gs_shared_init")) != 0) { -+ snprintf(buff, sizeof(buff), "%s/%s", GS_DEVS_SHARED_DIR, dirent->d_name); -+ pbuff = buff + strlen(buff) - 3; -+ if (strcmp(pbuff, ".so") != 0) -+ continue; -+ handle = dlopen(buff, RTLD_NOW); -+ if (handle == NULL) -+ continue; -+ gs_shared_init = dlsym(handle, "gs_shared_init"); -+ if (gs_shared_init != NULL) - (*gs_shared_init)(); -- } else { -- } -- } - } - - closedir(dir); |