15042 AD join fails if hostname longer than 14 characters
Reviewed by: Matt Barden <mbarden@tintri.com>
Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
Approved by: Dan McDonald <danmcd@mnx.io>
diff --git a/usr/src/lib/smbsrv/libsmbns/common/smbns_ads.c b/usr/src/lib/smbsrv/libsmbns/common/smbns_ads.c
index 02b9d3c..0a07771 100644
--- a/usr/src/lib/smbsrv/libsmbns/common/smbns_ads.c
+++ b/usr/src/lib/smbsrv/libsmbns/common/smbns_ads.c
@@ -1599,7 +1599,8 @@
{
char *attrs[3], filter[SMB_ADS_MAXBUFLEN];
LDAPMessage *res;
- char sam_acct[SMB_SAMACCT_MAXLEN], sam_acct2[SMB_SAMACCT_MAXLEN];
+ char sam_acct[SMB_SAMACCT_MAXLEN];
+ char tmpbuf[SMB_ADS_MAXBUFLEN];
smb_ads_qstat_t rc;
int err;
@@ -1618,12 +1619,12 @@
attrs[1] = avpair->avp_attr;
}
- if (smb_ads_escape_search_filter_chars(sam_acct, sam_acct2) != 0)
+ if (smb_ads_escape_search_filter_chars(sam_acct, tmpbuf) != 0)
return (SMB_ADS_STAT_ERR);
(void) snprintf(filter, sizeof (filter),
- "(&(objectClass=computer)(%s=%s))", SMB_ADS_ATTR_SAMACCT,
- sam_acct2);
+ "(&(objectClass=computer)(%s=%s))",
+ SMB_ADS_ATTR_SAMACCT, tmpbuf);
syslog(LOG_DEBUG, "smbns: lookup_computer, "
"dn=%s, scope=%d", dn, scope);