summaryrefslogtreecommitdiffstats
path: root/source3
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2014-01-31 23:20:05 +0100
committerGünther Deschner <gd@samba.org>2014-02-11 16:20:30 +0100
commit4f344f3b80505f47549d933e3a66d5a9b5dd85bb (patch)
treef7e2658ea9303ca2de4f69651e58fb5234bf5a4b /source3
parentce973f78af956c075156bb091fd4ef86281baa16 (diff)
downloadsamba-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>
Diffstat (limited to 'source3')
-rw-r--r--source3/rpc_server/epmapper/srv_epmapper.c24
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;
}