cfg_get_by_name() returns an error instead of the incorrect value
authorMiklos Tirpak <miklos@iptel.org>
Fri, 11 Jan 2008 15:15:19 +0000 (15:15 +0000)
committerMiklos Tirpak <miklos@iptel.org>
Fri, 11 Jan 2008 15:15:19 +0000 (15:15 +0000)
if a fix-up function is defined

cfg/cfg_ctx.c

index e952ad7..73f38c8 100644 (file)
@@ -731,6 +731,13 @@ int cfg_get_by_name(cfg_ctx_t *ctx, str *group_name, str *var_name,
        if (cfg_lookup_var(group_name, var_name, &group, &var))
                return -1;
 
+       if (var->def->on_change_cb) {
+               /* The variable cannot be retrieved, because the fixup
+               function may have changed it, and it is better to return
+               an error than an incorrect value */
+               return -1;
+       }
+
        /* use the module's handle to access the variable
        It means that the variable is read from the local config
        after forking */