summaryrefslogtreecommitdiff
path: root/usr.sbin/ldapd
diff options
context:
space:
mode:
authorMartin Hedenfal <martinh@cvs.openbsd.org>2010-06-30 17:16:10 +0000
committerMartin Hedenfal <martinh@cvs.openbsd.org>2010-06-30 17:16:10 +0000
commitba0e6657f57d1712b07ec61ebd3860742362fb01 (patch)
treeeb4c6adf19e79158fe1fc211a0adb469fea88361 /usr.sbin/ldapd
parent04a10dc7543e5c850a1cf5a093f2a1ffa5fa1c90 (diff)
Don't send statistics for referral namespaces. This unbreaks ldapctl stats.
Avoid null pointer dereference when reopening a namespace.
Diffstat (limited to 'usr.sbin/ldapd')
-rw-r--r--usr.sbin/ldapd/control.c4
-rw-r--r--usr.sbin/ldapd/ldape.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/ldapd/control.c b/usr.sbin/ldapd/control.c
index fb3a0226e7d..a5386775bc2 100644
--- a/usr.sbin/ldapd/control.c
+++ b/usr.sbin/ldapd/control.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: control.c,v 1.3 2010/06/27 16:24:17 martinh Exp $ */
+/* $OpenBSD: control.c,v 1.4 2010/06/30 17:16:09 martinh Exp $ */
/*
* Copyright (c) 2010 Martin Hedenfalk <martin@bzero.se>
@@ -191,6 +191,8 @@ send_stats(struct imsgev *iev)
&stats, sizeof(stats));
TAILQ_FOREACH(ns, &conf->namespaces, next) {
+ if (namespace_has_referrals(ns))
+ continue;
strlcpy(nss.suffix, ns->suffix, sizeof(nss.suffix));
st = btree_stat(ns->data_db);
bcopy(st, &nss.data_stat, sizeof(nss.data_stat));
diff --git a/usr.sbin/ldapd/ldape.c b/usr.sbin/ldapd/ldape.c
index 4f8c4744dd8..a663cf88f29 100644
--- a/usr.sbin/ldapd/ldape.c
+++ b/usr.sbin/ldapd/ldape.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ldape.c,v 1.8 2010/06/29 21:54:38 martinh Exp $ */
+/* $OpenBSD: ldape.c,v 1.9 2010/06/30 17:16:09 martinh Exp $ */
/*
* Copyright (c) 2009, 2010 Martin Hedenfalk <martin@bzero.se>
@@ -463,6 +463,8 @@ ldape_open_result(struct imsg *imsg)
log_debug("open(%s) returned fd %i", oreq->path, imsg->fd);
TAILQ_FOREACH(ns, &conf->namespaces, next) {
+ if (namespace_has_referrals(ns))
+ continue;
if (strcmp(oreq->path, ns->data_path) == 0) {
namespace_set_data_fd(ns, imsg->fd);
break;