]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
OpenBSD 5.3: Replace use of copyinstr for setting mount point name.
authorAntoine Verheijen <antoine@ualberta.ca>
Tue, 9 Apr 2013 02:29:58 +0000 (20:29 -0600)
committerStephan Wiesand <stephan.wiesand@desy.de>
Wed, 15 May 2013 17:31:55 +0000 (10:31 -0700)
As a result of a realignment of kernel memory in OpenBSD 5.3,
the copyinstr() routine no longer works for copying the mount
point name into the internal mount table structure. It also
fails silently, so it's not noticed until someone looks at
the mount table and discovers that the mount point name for
AFS is missing.

This patch replaces the use of copyinstr() with strlcpy() for
copying the mount point name in OpenBSD 5.3.

Note that this is consistent with how other similar device
support has addressed the same issue in OpenBSD 5.3.

Reviewed-on: http://gerrit.openafs.org/9752
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit b39461fc67d4f258d31e0a13b5d8dcb3c5fae49f)

Change-Id: I5e9a3d0871360e0e3b19cdb2b4a609baeed050f8
Reviewed-on: http://gerrit.openafs.org/9908
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/OBSD/osi_vfsops.c

index 7b4125fb3b8569d5c644d8bc5bb0be86499280e8..3db75e2a6b3e893da5940a7e35b08c13c1bdcd22 100644 (file)
@@ -245,8 +245,13 @@ afs_mount(mp, path, data, ndp, p)
     mp->osi_vfs_fsid.val[0] = AFS_VFSMAGIC;    /* magic */
     mp->osi_vfs_fsid.val[1] = (int)AFS_VFSFSID;
 
+#if defined(AFS_OBSD53_ENV)
+    bzero(mp->mnt_stat.f_mntonname, MNAMELEN);
+    strlcpy(mp->mnt_stat.f_mntonname, path, MNAMELEN);
+#else
     (void)copyinstr(path, mp->mnt_stat.f_mntonname, MNAMELEN - 1, &size);
     bzero(mp->mnt_stat.f_mntonname + size, MNAMELEN - size);
+#endif
     bzero(mp->mnt_stat.f_mntfromname, MNAMELEN);
     strcpy(mp->mnt_stat.f_mntfromname, "AFS");
     /* null terminated string "AFS" will fit, just leave it be. */