diff options
author | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-10-07 17:33:04 -0300 |
---|---|---|
committer | Nicolas Reynolds <fauno@kiwwwi.com.ar> | 2011-10-07 17:33:04 -0300 |
commit | 2302f1d28510fadb2dcfa119f28ed28f164845bf (patch) | |
tree | e7040e1c743f46bc60a7844275516e4404f6ac30 /testing/libsasl/0030-dont_use_la_files_for_opening_plugins.patch | |
parent | 2a9d1292ab60e8a2356fb3eeb36b8c3cfc22759b (diff) | |
parent | 5442e9b8f357932ed5d6cb46e90fcbf6f453469f (diff) |
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts:
community/fotoxx/PKGBUILD
community/gtkdialog/PKGBUILD
community/hubbub/PKGBUILD
community/libgdamm/PKGBUILD
community/libparserutils/PKGBUILD
community/mingw32-binutils/PKGBUILD
community/mingw32-gcc-base/PKGBUILD
community/mingw32-gcc/PKGBUILD
community/mtpaint/PKGBUILD
community/netsurf/PKGBUILD
community/patchage/PKGBUILD
community/qgo/PKGBUILD
community/tomoyo-tools/PKGBUILD
community/tre/PKGBUILD
community/virtualbox/PKGBUILD
core/net-tools/PKGBUILD
core/openldap/PKGBUILD
extra/epiphany/PKGBUILD
extra/evince/PKGBUILD
extra/evolution-data-server/PKGBUILD
extra/evolution/PKGBUILD
extra/exiv2/PKGBUILD
extra/folks/PKGBUILD
extra/gimp-ufraw/PKGBUILD
extra/gnome-control-center/PKGBUILD
extra/gnome-power-manager/PKGBUILD
extra/gnome-python-desktop/PKGBUILD
extra/gnome-python-extras/PKGBUILD
extra/gvfs/PKGBUILD
extra/jack/PKGBUILD
extra/kdelibs/PKGBUILD
extra/kdepim/PKGBUILD
extra/koffice/PKGBUILD
extra/libreoffice/PKGBUILD
extra/libwebkit/PKGBUILD
extra/mutter/PKGBUILD
extra/nautilus/PKGBUILD
extra/openmpi/PKGBUILD
extra/pavucontrol/PKGBUILD
extra/php/PKGBUILD
extra/pidgin/PKGBUILD
extra/postgresql/PKGBUILD
extra/pulseaudio/PKGBUILD
extra/pygobject2/PKGBUILD
extra/swt/PKGBUILD
extra/tomcat/PKGBUILD
extra/totem/PKGBUILD
extra/vigra/PKGBUILD
extra/vte/PKGBUILD
extra/xulrunner/PKGBUILD
kde-unstable/calligra/PKGBUILD
kde-unstable/kdebase-workspace/PKGBUILD
multilib/lib32-atk/PKGBUILD
multilib/lib32-gdk-pixbuf2/PKGBUILD
multilib/lib32-glew/PKGBUILD
multilib/lib32-glib2/PKGBUILD
multilib/lib32-jack/PKGBUILD
multilib/lib32-libpulse/PKGBUILD
multilib/lib32-pango/PKGBUILD
multilib/wine/PKGBUILD
social/miniupnpc/PKGBUILD
testing/icedtea-web-java7/PKGBUILD
testing/sqlite3/PKGBUILD
~xihh/abiword/PKGBUILD
Diffstat (limited to 'testing/libsasl/0030-dont_use_la_files_for_opening_plugins.patch')
-rw-r--r-- | testing/libsasl/0030-dont_use_la_files_for_opening_plugins.patch | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/testing/libsasl/0030-dont_use_la_files_for_opening_plugins.patch b/testing/libsasl/0030-dont_use_la_files_for_opening_plugins.patch new file mode 100644 index 000000000..14a322496 --- /dev/null +++ b/testing/libsasl/0030-dont_use_la_files_for_opening_plugins.patch @@ -0,0 +1,134 @@ +--- a/lib/dlopen.c ++++ b/lib/dlopen.c +@@ -247,105 +247,6 @@ static int _sasl_plugin_load(char *plugi + return result; + } + +-/* this returns the file to actually open. +- * out should be a buffer of size PATH_MAX +- * and may be the same as in. */ +- +-/* We'll use a static buffer for speed unless someone complains */ +-#define MAX_LINE 2048 +- +-static int _parse_la(const char *prefix, const char *in, char *out) +-{ +- FILE *file; +- size_t length; +- char line[MAX_LINE]; +- char *ntmp = NULL; +- +- if(!in || !out || !prefix || out == in) return SASL_BADPARAM; +- +- /* Set this so we can detect failure */ +- *out = '\0'; +- +- length = strlen(in); +- +- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) { +- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) { +- /* check for a .la file */ +- strcpy(line, prefix); +- strcat(line, in); +- length = strlen(line); +- *(line + (length - strlen(SO_SUFFIX))) = '\0'; +- strcat(line, LA_SUFFIX); +- file = fopen(line, "r"); +- if(file) { +- /* We'll get it on the .la open */ +- fclose(file); +- return SASL_FAIL; +- } +- } +- strcpy(out, prefix); +- strcat(out, in); +- return SASL_OK; +- } +- +- strcpy(line, prefix); +- strcat(line, in); +- +- file = fopen(line, "r"); +- if(!file) { +- _sasl_log(NULL, SASL_LOG_WARN, +- "unable to open LA file: %s", line); +- return SASL_FAIL; +- } +- +- while(!feof(file)) { +- if(!fgets(line, MAX_LINE, file)) break; +- if(line[strlen(line) - 1] != '\n') { +- _sasl_log(NULL, SASL_LOG_WARN, +- "LA file has too long of a line: %s", in); +- return SASL_BUFOVER; +- } +- if(line[0] == '\n' || line[0] == '#') continue; +- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) { +- /* We found the line with the name in it */ +- char *end; +- char *start; +- size_t len; +- end = strrchr(line, '\''); +- if(!end) continue; +- start = &line[sizeof("dlname=")-1]; +- len = strlen(start); +- if(len > 3 && start[0] == '\'') { +- ntmp=&start[1]; +- *end='\0'; +- /* Do we have dlname="" ? */ +- if(ntmp == end) { +- _sasl_log(NULL, SASL_LOG_DEBUG, +- "dlname is empty in .la file: %s", in); +- return SASL_FAIL; +- } +- strcpy(out, prefix); +- strcat(out, ntmp); +- } +- break; +- } +- } +- if(ferror(file) || feof(file)) { +- _sasl_log(NULL, SASL_LOG_WARN, +- "Error reading .la: %s\n", in); +- fclose(file); +- return SASL_FAIL; +- } +- fclose(file); +- +- if(!(*out)) { +- _sasl_log(NULL, SASL_LOG_WARN, +- "Could not find a dlname line in .la file: %s", in); +- return SASL_FAIL; +- } +- +- return SASL_OK; +-} + #endif /* DO_DLOPEN */ + + /* loads a plugin library */ +@@ -499,18 +400,18 @@ int _sasl_load_plugins(const add_plugin_ + if (length + pos>=PATH_MAX) continue; /* too big */ + + if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)), +- SO_SUFFIX) +- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)), +- LA_SUFFIX)) ++ SO_SUFFIX)) + continue; + ++ /* We only use .so files for loading plugins */ ++ + memcpy(name,dir->d_name,length); + name[length]='\0'; + +- result = _parse_la(prefix, name, tmp); +- if(result != SASL_OK) +- continue; +- ++ /* Create full name with path */ ++ strncpy(tmp, prefix, PATH_MAX); ++ strncat(tmp, name, PATH_MAX); ++ + /* skip "lib" and cut off suffix -- + this only need be approximate */ + strcpy(plugname, name + 3); |