From ad9475f6bf2a4b1745f5368fe6c011278650977d Mon Sep 17 00:00:00 2001 From: Ilja van Sprundel Date: Thu, 3 Oct 2019 15:42:33 +0200 Subject: [PATCH] make sure name_len is not negative This change adds a check to make sure name_len is not negative. This change was made to prevent memory corruption from occurring if name_len is negative. --- minix/servers/vfs/path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minix/servers/vfs/path.c b/minix/servers/vfs/path.c index 5360d2c1f..7598d9cfe 100644 --- a/minix/servers/vfs/path.c +++ b/minix/servers/vfs/path.c @@ -621,7 +621,7 @@ get_name(struct vnode *dirp, struct vnode *entry, char ename[NAME_MAX + 1]) cur = (struct dirent *) (buf + consumed); name_len = cur->d_reclen - offsetof(struct dirent, d_name) - 1; - if(cur->d_name + name_len+1 > &buf[sizeof(buf)]) + if(name_len < 0 || cur->d_name + name_len+1 > &buf[sizeof(buf)]) return(EINVAL); /* Rubbish in dir entry */ if (entry->v_inode_nr == cur->d_fileno) { /* found the entry we were looking for */