From df27911880bffb88c1eae90e36c755a3ed3d77ad Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Mon, 19 Mar 2012 13:00:00 +0100 Subject: [PATCH] Fixes problem with dirname(). Thanks Henrique de Moraes Holschuh for the original patch. --- sysdep/unix/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index 49299411..a4e80154 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -170,7 +170,10 @@ cf_open(char *filename) int ret; if (*filename != '/') { - snprintf(full_name, sizeof(full_name), "%s/%s", dirname(config_name), filename); + char dir[BIRD_FNAME_MAX]; + strncpy(dir, config_name, sizeof(dir)); + dir[sizeof(dir)-1] = 0; + snprintf(full_name, sizeof(full_name), "%s/%s", dirname(dir), filename); full_name[sizeof(full_name)-1] = 0; cur = full_name; }