$OpenBSD: patch-libatalk_cnid_cnid_open_c,v 1.1 2003/08/22 11:18:19 naddy Exp $
--- libatalk/cnid/cnid_open.c.orig	Mon Aug 18 11:53:32 2003
+++ libatalk/cnid/cnid_open.c	Mon Aug 18 12:56:38 2003
@@ -222,7 +222,7 @@ void *cnid_open(const char *dir, mode_t 
 #ifndef CNID_DB_CDB
     struct flock lock;
 #endif /* CNID_DB_CDB */
-char path[MAXPATHLEN + 1];
+char path[MAXPATHLEN];
     CNID_private *db;
     DBT key, data;
     DB_TXN *tid;
@@ -246,13 +246,13 @@ char path[MAXPATHLEN + 1];
 
     db->magic = CNID_DB_MAGIC;
 
-    strcpy(path, dir);
+    (void)strlcpy(path, dir, sizeof(path));
     if (path[len - 1] != '/') {
-        strcat(path, "/");
+        (void)strlcat(path, "/", sizeof(path));
         len++;
     }
 
-    strcpy(path + len, DBHOME);
+    (void)strlcpy(path + len, DBHOME, sizeof(path));
     if ((stat(path, &st) < 0) && (ad_mkdir(path, 0777 & ~mask) < 0)) {
         LOG(log_error, logtype_default, "cnid_open: DBHOME mkdir failed for %s", path);
         goto fail_adouble;
@@ -270,8 +270,8 @@ char path[MAXPATHLEN + 1];
      *
      * NOTE: This won't work if multiple volumes for the same user refer
      * to the sahe directory. */
-    strcat(path, DBLOCKFILE);
-    strcpy(db->lock_file, path);
+    (void)strlcat(path, DBLOCKFILE, sizeof(path));
+    (void)strlcpy(db->lock_file, path, sizeof(db->lock_file));
     if ((db->lockfd = open(path, O_RDWR | O_CREAT, 0666 & ~mask)) > -1) {
         lock.l_start = 0;
         lock.l_len = 1;
