summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2010-08-31 13:57:04 -0700
committerNoriko Hosoi <nhosoi@redhat.com>2010-08-31 13:57:04 -0700
commitbc7df12bbdeade5ba5115e5ea900d16ddd23c046 (patch)
tree5ff8889eb15508e500bec627a2f81b18e9e144b8
parent8a943175138bbfec0b398ea4ffd24f3047df3951 (diff)
downloadds-bc7df12bbdeade5ba5115e5ea900d16ddd23c046.tar.gz
ds-bc7df12bbdeade5ba5115e5ea900d16ddd23c046.tar.xz
ds-bc7df12bbdeade5ba5115e5ea900d16ddd23c046.zip
DN normalizer should check the invalid type
File: ldap/servers/slapd/dn.c Description: slapi_dn_normalize_ext failed to check a typical invald DN (e.g., "bogus,dc=example,dc=com"), in which RDN does not have the type=value format. The problem is fixed.
-rw-r--r--ldap/servers/slapd/dn.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ldap/servers/slapd/dn.c b/ldap/servers/slapd/dn.c
index a163fb35..54ddac10 100644
--- a/ldap/servers/slapd/dn.c
+++ b/ldap/servers/slapd/dn.c
@@ -564,6 +564,10 @@ slapi_dn_normalize_ext(char *src, size_t src_len, char **dest, size_t *dest_len)
*d++ = *s++;
} else if (ISSPACE(*s)) {
state = B4EQUAL; /* skip a trailing space */
+ } else if (ISQUOTE(*s) || SEPARATOR(*s)) {
+ /* type includes quote / separator; not a valid dn */
+ rc = -1;
+ goto bail;
} else {
*d++ = *s++;
}