diff --git a/libntfs-3g/dir.c b/libntfs-3g/dir.c index a48f5131..19f30139 100644 --- a/libntfs-3g/dir.c +++ b/libntfs-3g/dir.c @@ -466,11 +466,14 @@ ntfs_inode *ntfs_pathname_to_inode(ntfs_volume *vol, ntfs_inode *parent, q++; } - len = ntfs_mbstoucs(p, &unicode, NTFS_MAX_NAME_LEN); + len = ntfs_mbstoucs(p, &unicode, MAX_PATH); if (len < 0) { ntfs_log_debug("Couldn't convert name to Unicode: %s.\n", p); err = errno; goto close; + } else if (len > NTFS_MAX_NAME_LEN) { + err = ENAMETOOLONG; + goto close; } inum = ntfs_inode_lookup_by_name(ni, unicode, len);