[PATCH] fs: ext4: fix symlink read function

Antony Pavlov antonynpavlov at gmail.com
Wed Jul 6 12:58:44 PDT 2016


From: Ronald Zachariah <rozachar at cisco.com>

>From U-Boot commit:

| commit 37f23885e4905ff500a8524328aa3084ac11cdb4
| Author: Ronald Zachariah <rozachar at cisco.com>
| Date:   Thu Apr 28 07:08:34 2016 +0200
|
|     fs: ext4: fix symlink read function
|
|     The function ext4fs_read_symlink was unable to handle a symlink
|     which had target name of exactly 60 characters.
|
|     Signed-off-by: Ronald Zachariah <rozachar at cisco.com>
|     Signed-off-by: Stefan Roese <sr at denx.de>
|     Reviewed-by: Stephen Warren <swarren at nvidia.com>
|     Cc: Tom Rini <trini at konsulko.com>

Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
---
 fs/ext4/ext4_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
index 1ecbb8d..6c4083e 100644
--- a/fs/ext4/ext4_common.c
+++ b/fs/ext4/ext4_common.c
@@ -377,7 +377,7 @@ char *ext4fs_read_symlink(struct ext2fs_node *node)
 	if (!symlink)
 		return 0;
 
-	if (__le32_to_cpu(diro->inode.size) <= 60) {
+	if (__le32_to_cpu(diro->inode.size) < sizeof(diro->inode.b.symlink)) {
 		strncpy(symlink, diro->inode.b.symlink,
 			 __le32_to_cpu(diro->inode.size));
 	} else {
-- 
2.8.1




More information about the barebox mailing list