From 1e5d36e31edc7a46d3cea0c1e65941f9dc753fc3 Mon Sep 17 00:00:00 2001
From: lingsheng <lingsheng@huawei.com>
Date: Fri, 18 Dec 2020 10:52:36 +0800
Subject: [PATCH] Add attributes file nodesize check

---
 tsk/fs/hfs.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tsk/fs/hfs.c b/tsk/fs/hfs.c
index 3acc7ff..2f513cd 100644
--- a/tsk/fs/hfs.c
+++ b/tsk/fs/hfs.c
@@ -3922,6 +3922,18 @@ hfs_load_extended_attrs(TSK_FS_FILE * fs_file,
         return 1;
     }
 
+    // Is the Attributes file nodesize valid?
+    // byte size of each node(512..32768)
+    if (attrFile.nodeSize < 512 || attrFile.nodeSize > 32768) {
+        if (tsk_verbose)
+            tsk_fprintf(stderr,
+	        "hfs_load_extended_attrs: Attributes file nodesize is invalid\n");
+        close_attr_file(&attrFile);
+        *isCompressed = FALSE;
+        *cmpType = 0;
+        return 0;
+    }
+
     // A place to hold one node worth of data
     nodeData = (uint8_t *) malloc(attrFile.nodeSize);
     if (nodeData == NULL) {
-- 
2.27.0

