diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
index 410419e241bc64f9709e0008bfbb3382eb029c74..727a2f753df391457010925aa237a46330b5cf5f 100644
--- a/fs/ext4/ext4_common.c
+++ b/fs/ext4/ext4_common.c
@@ -2046,7 +2046,7 @@ static char *ext4fs_read_symlink(struct ext2fs_node *node)
 		status = ext4fs_read_file(diro, 0,
 					   __le32_to_cpu(diro->inode.size),
 					   symlink, &actread);
-		if (status == 0) {
+		if ((status < 0) || (actread == 0)) {
 			free(symlink);
 			return 0;
 		}