From 0cf74faa74d5d643ff186caab53c39c1cc103147 Mon Sep 17 00:00:00 2001 From: turbanoff Date: Tue, 11 Sep 2012 17:39:26 +0000 Subject: [PATCH] disable read for non-file (symlink, device inode, etc) git-svn-id: svn://kolibrios.org@2973 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/fs/ext2.inc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/trunk/fs/ext2.inc b/kernel/trunk/fs/ext2.inc index 77f7a265a7..ef1802d19c 100644 --- a/kernel/trunk/fs/ext2.inc +++ b/kernel/trunk/fs/ext2.inc @@ -20,6 +20,7 @@ EXT2_UNDEL_DIR_INO = 6 ;флаги, указываемый в inode файла EXT2_S_IFREG = 0x8000 EXT2_S_IFDIR = 0x4000 +EXT2_S_IFMT = 0xF000 ;маска для типа файла ;флаги, указываемые в linked list родительской папки EXT2_FT_REG_FILE = 1 ;это файл, запись в родительском каталоге @@ -854,8 +855,10 @@ ext2_HdRead: ret @@: - test [ebp + EXT2_INODE_STRUC.i_mode], EXT2_S_IFREG - jz .this_is_nofile + mov ax, [ebp + EXT2_INODE_STRUC.i_mode] + and ax, EXT2_S_IFMT ;оставляем только тип inode в ax + cmp ax, EXT2_S_IFREG + jne .this_is_nofile mov edi, edx ; edi = pointer to return mem