diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-01-31 23:20:05 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2014-02-11 16:20:30 +0100 |
commit | 4f344f3b80505f47549d933e3a66d5a9b5dd85bb (patch) | |
tree | f7e2658ea9303ca2de4f69651e58fb5234bf5a4b | |
parent | ce973f78af956c075156bb091fd4ef86281baa16 (diff) | |
download | samba-4f344f3b80505f47549d933e3a66d5a9b5dd85bb.tar.gz samba-4f344f3b80505f47549d933e3a66d5a9b5dd85bb.tar.xz samba-4f344f3b80505f47549d933e3a66d5a9b5dd85bb.zip |
s3:srv_epmapper: fix logic in endpoints_match()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
-rw-r--r-- | source3/rpc_server/epmapper/srv_epmapper.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/source3/rpc_server/epmapper/srv_epmapper.c b/source3/rpc_server/epmapper/srv_epmapper.c index cfa233ca4b..758a48bee1 100644 --- a/source3/rpc_server/epmapper/srv_epmapper.c +++ b/source3/rpc_server/epmapper/srv_epmapper.c @@ -134,22 +134,34 @@ static bool endpoints_match(const struct dcerpc_binding *ep1, return false; } - if (!ep1->endpoint || !ep2->endpoint) { - return ep1->endpoint == ep2->endpoint; + if (!ep1->endpoint && ep2->endpoint) { + return false; } - if (!strequal(ep1->endpoint, ep2->endpoint)) { + if (ep1->endpoint && !ep2->endpoint) { return false; } - if (!ep1->host || !ep2->host) { - return ep1->endpoint == ep2->endpoint; + if (ep1->endpoint && ep2->endpoint) { + if (!strequal(ep1->endpoint, ep2->endpoint)) { + return false; + } + } + + if (!ep1->host && ep2->host) { + return false; } - if (!strequal(ep1->host, ep2->host)) { + if (ep1->host && !ep2->host) { return false; } + if (ep1->host && ep2->host) { + if (!strequal(ep1->host, ep2->host)) { + return false; + } + } + return true; } |