DragonFlyBSD Kernel Audit
DF-0873 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/vfs/ntfs/ntfs_vnops.c b/sys/vfs/ntfs/ntfs_vnops.c
--- a/sys/vfs/ntfs/ntfs_vnops.c
+++ b/sys/vfs/ntfs/ntfs_vnops.c
@@ -587,10 +587,14 @@
 		{
 			if(!ntfs_isnamepermitted(ntmp,iep))
 				continue;
-			for(i=0, j=0; i < iep->ie_fnamelen; i++, j++) {
+			for(i=0, j=0; i < iep->ie_fnamelen &&
+			    j < sizeof(convname) - 1; i++, j++) {
 				c = NTFS_U28(iep->ie_fname[i]);
-				if (c&0xFF00)
+				if (c&0xFF00) {
+					if (j >= sizeof(convname) - 2)
+						break;
 					convname[j++] = (char)(c>>8);
+				}
 				convname[j] = (char)c&0xFF;
 			}
 			convname[j] = '\0';