]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes problem with dirname().
authorOndrej Zajicek <santiago@crfreenet.org>
Mon, 19 Mar 2012 12:00:00 +0000 (13:00 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Mon, 19 Mar 2012 12:00:00 +0000 (13:00 +0100)
Thanks Henrique de Moraes Holschuh for the original patch.

sysdep/unix/main.c

index 492994116c167e586fac8b94bdf5926a620e9a8d..a4e80154650bd3c27e9acdd14b56573a49b1f077 100644 (file)
@@ -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;
   }