]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/filter.c
fix ITS#5959 fix
[openldap] / servers / slapd / filter.c
index bf855f573470b0994357c52840bb880e11ab1093..fba7bd3794397d784ff6ded3d5b220abf4814bb3 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2008 The OpenLDAP Foundation.
+ * Copyright 1998-2009 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -385,6 +385,19 @@ get_ssa(
 
        rc = LDAP_PROTOCOL_ERROR;
 
+       if ( ssa.sa_desc->ad_type->sat_substr == NULL ) {
+               for ( tag = ber_first_element( ber, &len, &last );
+                       tag != LBER_DEFAULT;
+                       tag = ber_next_element( ber, &len, last ) )
+               {
+                       /* eat all */
+                       rc = ber_scanf( ber, "x" );
+               }
+
+               rc = LDAP_INVALID_SYNTAX;
+               goto return_error;
+       }
+
        for ( tag = ber_first_element( ber, &len, &last );
                tag != LBER_DEFAULT;
                tag = ber_next_element( ber, &len, last ) )