diff --git a/src/resolvers.c b/src/resolvers.c
index 11e3f36..d8fc3ef 100644
--- a/src/resolvers.c
+++ b/src/resolvers.c
@@ -190,7 +190,7 @@
 	int fqdn_len, hostname_dn_len;
 
 	fqdn_len = strlen(fqdn);
-	hostname_dn_len = resolv_str_to_dn_label(fqdn, fqdn_len + 1, trash.area,
+	hostname_dn_len = resolv_str_to_dn_label(fqdn, fqdn_len, trash.area,
 					      trash.size);
 	if (hostname_dn_len == -1) {
 		ha_alert("config : %s '%s', server '%s': failed to parse FQDN '%s'\n",
@@ -1651,18 +1651,19 @@
 
 /* Turns a string into domain name label: www.haproxy.org into 3www7haproxy3org
  *
- * <str> must be a null-terminated string. <str_len> must include the
- * terminating null byte. <dn> buffer must be allocated and its size must be
- * passed in <dn_len>.
+ * <str> contains the input string that is <str_len> bytes long (trailing zero
+ * not needed). <dn> buffer must be allocated large enough to contain the
+ * encoded string and a trailing zero, so it must be at least str_len+2, and
+ * this allocated buffer size must be passed in <dn_len>.
  *
- *  In case of error, -1 is returned, otherwise, the number of bytes copied in
+ * In case of error, -1 is returned, otherwise, the number of bytes copied in
  * <dn> (excluding the terminating null byte).
  */
 int resolv_str_to_dn_label(const char *str, int str_len, char *dn, int dn_len)
 {
 	int i, offset;
 
-	if (dn_len < str_len + 1)
+	if (dn_len < str_len + 2)
 		return -1;
 
 	/* First byte of dn will be used to store the length of the first
@@ -1675,7 +1676,7 @@
 				return -1;
 
 			/* ignore trailing dot */
-			if (i + 2 == str_len) {
+			if (i + 1 == str_len) {
 				i++;
 				break;
 			}
@@ -1686,7 +1687,7 @@
 		}
 		dn[i+1] = str[i];
 	}
-	dn[offset] = (i - offset - 1);
+	dn[offset] = i - offset;
 	dn[i] = '\0';
 	return i;
 }
@@ -2732,7 +2733,7 @@
 
 	hostname_len    = strlen(hostname);
 	hostname_dn     = tmp->area;
-	hostname_dn_len = resolv_str_to_dn_label(hostname, hostname_len + 1,
+	hostname_dn_len = resolv_str_to_dn_label(hostname, hostname_len,
 	                                         hostname_dn, tmp->size);
 	if (hostname_dn_len == -1)
 		goto err;
