summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>2018-02-17 10:46:44 +1300
committerDouglas Bagnall <dbagnall@samba.org>2018-02-22 01:04:18 +0100
commita4c853a7deb080dd44e3c54eb45935ff0df91baf (patch)
treea0c343ff4c1485f0fedb844f958529f56d1cc6dc /source4
parent6ef6ddce5a64c55729c2e3d423757f504b0ab15e (diff)
downloadsamba-a4c853a7deb080dd44e3c54eb45935ff0df91baf.tar.gz
util/rfc1738_unescape(): return end pointer or NULL on error
At present we don't detect errors, but when we do we'll return NULL. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4')
-rw-r--r--source4/libcli/ldap/ldap_client.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source4/libcli/ldap/ldap_client.c b/source4/libcli/ldap/ldap_client.c
index 40d508cb01c..b5f5da6fa00 100644
--- a/source4/libcli/ldap/ldap_client.c
+++ b/source4/libcli/ldap/ldap_client.c
@@ -412,7 +412,7 @@ _PUBLIC_ struct composite_context *ldap_connect_send(struct ldap_connection *con
if (strequal(protocol, "ldapi")) {
struct socket_address *unix_addr;
char path[1025];
-
+ char *end = NULL;
NTSTATUS status = socket_create("unix", SOCKET_TYPE_STREAM, &state->sock, 0);
if (!NT_STATUS_IS_OK(status)) {
return NULL;
@@ -439,15 +439,18 @@ _PUBLIC_ struct composite_context *ldap_connect_send(struct ldap_connection *con
return result;
}
- rfc1738_unescape(path);
-
+ end = rfc1738_unescape(path);
+ if (end == NULL) {
+ composite_error(state->ctx,
+ NT_STATUS_INVALID_PARAMETER);
+ return result;
+ }
unix_addr = socket_address_from_strings(state, state->sock->backend_name,
path, 0);
if (composite_nomem(unix_addr, result)) {
return result;
}
-
ctx = socket_connect_send(state->sock, NULL, unix_addr,
0, result->event_ctx);
ctx->async.fn = ldap_connect_recv_unix_conn;