diff -urN bird-1.0.11.orig/client/client.c bird-1.0.11/client/client.c
--- bird-1.0.11.orig/client/client.c	2004-06-05 05:26:48.000000000 -0400
+++ bird-1.0.11/client/client.c	2006-07-13 09:34:04.000000000 -0400
@@ -254,7 +254,7 @@
     die("Cannot create socket: %m");
   bzero(&sa, sizeof(sa));
   sa.sun_family = AF_UNIX;
-  strcpy(sa.sun_path, server_path);
+  strncpy(sa.sun_path, server_path, sizeof(sa.sun_path));
   if (connect(server_fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) < 0)
     die("Unable to connect to server control socket (%s): %m", server_path);
   if (fcntl(server_fd, F_SETFL, O_NONBLOCK) < 0)
diff -urN bird-1.0.11.orig/sysdep/unix/io.c bird-1.0.11/sysdep/unix/io.c
--- bird-1.0.11.orig/sysdep/unix/io.c	2005-02-14 18:15:04.000000000 -0500
+++ bird-1.0.11/sysdep/unix/io.c	2006-07-13 09:34:29.000000000 -0400
@@ -866,7 +866,7 @@
     goto bad;
   unlink(name);
   sa.sun_family = AF_UNIX;
-  strcpy(sa.sun_path, name);
+  strncpy(sa.sun_path, name, sizeof(sa.sun_path));
   if (bind(fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) < 0)
     ERR("bind");
   if (listen(fd, 8))
