r18910: Change ldb_msg_add_string() to not actually add an attribute if the
authorAndrew Tridgell <tridge@samba.org>
Tue, 26 Sep 2006 01:21:34 +0000 (01:21 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:14:45 +0000 (12:14 -0500)
string is zero length. This allows callers to not have to worry about
creating an invalid ldap attribute.

See extensive discussion on samba-technical list :-)

source/lib/ldb/common/ldb_msg.c

index 52c6b82484f7120db0c63434e117278fb0c209e7..a4ba045669c34e26659e67a1f5c4b7d2e97eefc0 100644 (file)
@@ -227,6 +227,11 @@ int ldb_msg_add_string(struct ldb_message *msg,
        val.data = discard_const_p(uint8_t, str);
        val.length = strlen(str);
 
+       if (val.length == 0) {
+               /* allow empty strings as non-existant attributes */
+               return 0;
+       }
+
        return ldb_msg_add_value(msg, attr_name, &val);
 }