ConfigVariable **head_p,
                ConfigVariable **tail_p)
 {
+   char       *abs_path;
    bool        OK = true;
    FILE       *fp;
 
        return false;
    }
 
-   config_file = AbsoluteConfigLocation(config_file,calling_file);
-   fp = AllocateFile(config_file, "r");
+   abs_path = AbsoluteConfigLocation(config_file, calling_file);
+   fp = AllocateFile(abs_path, "r");
    if (!fp)
    {
        if (strict)
            ereport(elevel,
                    (errcode_for_file_access(),
                     errmsg("could not open configuration file \"%s\": %m",
-                           config_file)));
+                           abs_path)));
            return false;
        }
 
        ereport(LOG,
                (errmsg("skipping missing configuration file \"%s\"",
-                       config_file)));
+                       abs_path)));
        return OK;
    }
 
-   OK = ParseConfigFp(fp, config_file, depth, elevel, head_p, tail_p);
+   OK = ParseConfigFp(fp, abs_path, depth, elevel, head_p, tail_p);
 
    FreeFile(fp);
+   pfree(abs_path);
 
    return OK;
 }