This ber.c change has been in ldapd since rev 1.1 and was applied to snmpd back
in 2012. The following diff applies the change to the ldap client and ypldap.
Ok?
Index: usr.bin/ldap/ber.c
===================================================================
RCS file: /cvs/src/usr.bin/ldap/ber.c,v
retrieving revision 1.2
diff -u -p -r1.2 ber.c
--- usr.bin/ldap/ber.c 27 Jun 2018 13:22:17 -0000 1.2
+++ usr.bin/ldap/ber.c 27 Jun 2018 13:55:51 -0000
@@ -269,7 +269,7 @@ ber_add_nstring(struct ber_element *prev
struct ber_element *elm;
char *string;
- if ((string = calloc(1, len)) == NULL)
+ if ((string = calloc(1, len + 1)) == NULL)
return NULL;
if ((elm = ber_get_element(BER_TYPE_OCTETSTRING)) == NULL) {
free(string);
Index: usr.sbin/ypldap/ber.c
===================================================================
RCS file: /cvs/src/usr.sbin/ypldap/ber.c,v
retrieving revision 1.14
diff -u -p -r1.14 ber.c
--- usr.sbin/ypldap/ber.c 27 Jun 2018 13:22:17 -0000 1.14
+++ usr.sbin/ypldap/ber.c 27 Jun 2018 13:55:51 -0000
@@ -269,7 +269,7 @@ ber_add_nstring(struct ber_element *prev
struct ber_element *elm;
char *string;
- if ((string = calloc(1, len)) == NULL)
+ if ((string = calloc(1, len + 1)) == NULL)
return NULL;
if ((elm = ber_get_element(BER_TYPE_OCTETSTRING)) == NULL) {
free(string);