]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Conf: Add warning for symbol overriding keyword oz-test
authorOndrej Zajicek <santiago@crfreenet.org>
Thu, 16 Oct 2025 15:03:38 +0000 (17:03 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Thu, 16 Oct 2025 15:03:38 +0000 (17:03 +0200)
In BIRD configuration, used-defined symbols can override keywords, which
could lead to an unexpected behavior when one tries to use such keyword
in its original meaning.

conf/cf-lex.l

index f13b1c12be593a6f7c784687a30efe8f890f40fb..0bf76e9b11005e2f22f9603f798c1c94a55560a4 100644 (file)
@@ -647,6 +647,9 @@ cf_localize_symbol(struct config *conf, struct symbol *sym)
   if (cf_symbol_is_local(conf, sym))
     cf_error("Symbol '%s' already defined", sym->name);
 
+  if (sym->class == SYM_KEYWORD)
+    cf_warn("Symbol '%s' overrides existing keyword", sym->name);
+
   /* Not allocated here yet, doing it now. */
   cf_swap_soft_scope(conf);
   return cf_new_symbol(conf->current_scope, conf->pool, conf->mem, sym->name);