From d2a7b1729284dfb6e9b140f1629488583fa15767 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 3 Nov 2017 23:33:09 +1300 Subject: [PATCH] Fix a couple of null pointer deferences in the ldap auth code. Author: Thomas Munro --- src/backend/libpq/auth.c | 3 ++- src/backend/libpq/hba.c | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index ab74fd8dfd..8b82791d4c 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -2520,7 +2520,8 @@ CheckLDAPAuth(Port *port) { ereport(LOG, (errmsg("could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s", - port->hba->ldapbinddn, port->hba->ldapserver, + port->hba->ldapbinddn ? port->hba->ldapbinddn : "", + port->hba->ldapserver, ldap_err2string(r)), errdetail_for_ldap(ldap))); ldap_unbind(ldap); diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index b2c487a8e8..e997155cc8 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -1739,9 +1739,11 @@ parse_hba_auth_opt(char *name, char *val, HbaLine *hbaline, return false; } - hbaline->ldapserver = pstrdup(urldata->lud_host); + if (urldata->lud_host) + hbaline->ldapserver = pstrdup(urldata->lud_host); hbaline->ldapport = urldata->lud_port; - hbaline->ldapbasedn = pstrdup(urldata->lud_dn); + if (urldata->lud_dn) + hbaline->ldapbasedn = pstrdup(urldata->lud_dn); if (urldata->lud_attrs) hbaline->ldapsearchattribute = pstrdup(urldata->lud_attrs[0]); /* only use first one */ -- 2.14.1