⬢ DragonFlyBSD Kernel Audit
DF-3125 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/isofs/cd9660/cd9660_vfsops.c
+++ b/sys/vfs/isofs/cd9660/cd9660_vfsops.c
@@ -488,9 +488,13 @@ iso_mountfs(struct vnode *devvp, struct mount *mp, struct msdosfs_args *argp)
 	if (isomp->im_flags & ISOFSMNT_KICONV && cd9660_iconv) {
 		bcopy(argp->cs_local, cs_local, sizeof(cs_local));
 		bcopy(argp->cs_disk, cs_disk, sizeof(cs_disk));
+		/* args fields are fixed-size and not guaranteed NUL-terminated */
+		cs_local[sizeof(cs_local) - 1] = 0;
+		cs_disk[sizeof(cs_disk) - 1] = 0;
 		cd9660_iconv->open(cs_local, cs_disk, &isomp->im_d2l);
 		cd9660_iconv->open(cs_disk, cs_local, &isomp->im_l2d);
 	} else {