diff options
-rw-r--r-- | conf/cf-lex.l | 1 | ||||
-rw-r--r-- | conf/conf.h | 2 | ||||
-rw-r--r-- | nest/cli.c | 2 | ||||
-rw-r--r-- | sysdep/unix/main.c | 3 |
4 files changed, 6 insertions, 2 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l index 79dbab2..02ba4b3 100644 --- a/conf/cf-lex.l +++ b/conf/cf-lex.l @@ -75,6 +75,7 @@ linpool *cfg_mem; int (*cf_read_hook)(byte *buf, unsigned int max, int fd); int (*cf_open_hook)(char *filename); +struct include_file_stack *ifs; #define YY_INPUT(buf,result,max) result = cf_read_hook(buf, max, ifs->conf_fd); #define YY_NO_UNPUT diff --git a/conf/conf.h b/conf/conf.h index df77268..142c6ad 100644 --- a/conf/conf.h +++ b/conf/conf.h @@ -120,7 +120,7 @@ struct include_file_stack { struct include_file_stack *next; }; -struct include_file_stack *ifs; +extern struct include_file_stack *ifs; int cf_lex(void); @@ -224,7 +224,7 @@ static int cli_rh_trick_flag; struct cli *this_cli; static int -cli_cmd_read_hook(byte *buf, unsigned int max) +cli_cmd_read_hook(byte *buf, unsigned int max, UNUSED int fd) { if (!cli_rh_trick_flag) { diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index 72f7e85..d617684 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -171,11 +171,14 @@ cf_open(char *filename) if (*filename != '/') { snprintf(full_name, sizeof(full_name), "%s/%s", dirname(config_name), filename); + full_name[sizeof(full_name)-1] = 0; cur = full_name; } if ((ret = open(cur, O_RDONLY)) == -1) cf_error("Unable to open included configuration file: %s", cur); + + return ret; } |