lua-lualdap-git/allow-uri.patch

24 lines
909 B
Diff

diff --git a/src/lualdap.c b/src/lualdap.c
index 9f5f64b..06bdd9e 100644
--- a/src/lualdap.c
+++ b/src/lualdap.c
@@ -1019,9 +1019,15 @@ static int lualdap_open_simple (lua_State *L) {
lualdap_setmeta (L, LUALDAP_CONNECTION_METATABLE);
conn->version = 0;
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && LDAP_API_FEATURE_X_OPENLDAP >= 20300
- host_with_schema = malloc(strlen(host) + 8);
- strcpy(host_with_schema, "ldap://");
- strcat(host_with_schema, host);
+ host_with_schema = (char*) host;
+ if (strlen(host_with_schema)<8 || strncmp(host_with_schema, "ldap", 4)!=0
+ || ( strncmp(host_with_schema+4, "://", 3)!=0
+ && strncmp(host_with_schema+5, "://", 3)!=0)
+ ) {
+ host_with_schema = malloc(strlen(host) + 8);
+ strcpy(host_with_schema, "ldap://");
+ strcat(host_with_schema, host);
+ }
err = ldap_initialize(&conn->ld, host_with_schema);
free(host_with_schema);
host_with_schema = NULL;