$OpenBSD: patch-etc_cnid_dbd_db_param_c,v 1.1 2006/09/22 05:56:25 pvalchev Exp $
--- etc/cnid_dbd/db_param.c.orig	Tue Dec 21 08:36:12 2004
+++ etc/cnid_dbd/db_param.c	Sat Dec 31 12:34:18 2005
@@ -43,29 +43,27 @@
 static struct db_param params;
 static int parse_err;
 
-static int usock_maxlen()
+static size_t usock_maxlen()
 {
     struct sockaddr_un addr;
 
-    return sizeof(addr.sun_path) - 1;
+    return sizeof(addr.sun_path);
 }
 
-static int make_pathname(char *path, char *dir, char *fn, int maxlen)
+static int make_pathname(char *path, char *dir, char *fn, size_t maxlen)
 {
     size_t len;
 
     if (fn[0] != '/') {
-        len = strlen(dir);
-        if (len + 1 + strlen(fn) > maxlen)
-            return -1;      
-        strcpy(path, dir);
+        if ((len = strlcpy(path, dir, maxlen)) >= maxlen)
+		    return -1;
         if (path[len - 1] != '/')
-            strcat(path, "/");
-        strcat(path, fn);
+            strlcat(path, "/", maxlen);
+        if (strlcat(path, fn, maxlen) >= maxlen)
+			return -1;
     } else {
-        if (strlen(fn) > maxlen)
-            return -1;
-        strcpy(path, fn);
+		if (strlcpy(path, fn, maxlen) >= maxlen)
+		    return -1;
     }
     return 0;
 }
