]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/config.c
cleanup version parsing
[openldap] / servers / slapd / back-ldap / config.c
index ddf4e77ae086eb317106653bdf3c03f3b6f137a5..c0123fe8ebc20e915492f5a9b614d5c6b521ba42 100644 (file)
@@ -1323,16 +1323,16 @@ done_url:;
                } break;
 
        case LDAP_BACK_CFG_VERSION:
-               switch ( c->value_int ) {
-               case 0:
-               case LDAP_VERSION2:
-               case LDAP_VERSION3:
-                       li->li_version = c->value_int;
-                       break;
-
-               default:
+               if ( c->value_int != 0 && ( c->value_int < LDAP_VERSION_MIN || c->value_int > LDAP_VERSION_MAX ) ) {
+                       snprintf( c->msg, sizeof( c->msg ),
+                               "unsupported version \"%s\" "
+                               "in \"protocol-version <version>\"",
+                               c->argv[ 1 ] );
+                       Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->msg, 0 );
                        return 1;
                }
+
+               li->li_version = c->value_int;
                break;
 
        case LDAP_BACK_CFG_REWRITE: