Fix ldap lookups for zero-length attribute value. Bug 2251
[exim.git] / src / src / lookups / ldap.c
index 2ebe734cd2c074c312bc38c1da2238992cd504d0..63c0edf7979460c90a6738a962ad2572c78f5a9e 100644 (file)
@@ -840,13 +840,13 @@ while ((rc = ldap_result(lcp->ld, msgid, 0, timeoutptr, &result)) ==
   result = NULL;
   }            /* End "while" loop for multiple results */
 
-/* Terminate the dynamic string that we have built and reclaim unused store */
+/* Terminate the dynamic string that we have built and reclaim unused store.
+In the odd case of a single attribute with zero-length value, allocate
+an empty string. */
 
-if (data)
-  {
-  (void) string_from_gstring(data);
-  gstring_reset_unused(data);
-  }
+if (!data) data = string_get(1);
+(void) string_from_gstring(data);
+gstring_reset_unused(data);
 
 /* Copy the last dn into eldap_dn */