diff --git a/CHANGES.txt b/CHANGES.txt index 77d1b2be6194efe0f90419b52744ac51dbbb4e9f..586d604e51099cfa321cdd689e8127f53b8b3ca9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -71,6 +71,9 @@ by Rob Joyce. 4/11/09: Bug Fix: Fixed issue 2662168 re: warning messages on macs when reading the raw character device. patch by Rob Joyce. +4/21/09: Bug Fix. Fixed issue 2778170 re: incorrect read size on resident +attributes. Patch by Jamie Butler. + ---------------- VERSION 3.0.0 -------------- 0/00/00: Update: Many, many, many API changes. diff --git a/tsk3/fs/fs_attr.c b/tsk3/fs/fs_attr.c index 3048ddd1c7d17dc69eee467ce1509a6c3c7ae784..6ced0f2afc5666b580603c206f5034e93b4e5141 100644 --- a/tsk3/fs/fs_attr.c +++ b/tsk3/fs/fs_attr.c @@ -1032,12 +1032,12 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset, else if (a_fs_attr->flags & TSK_FS_ATTR_RES) { size_t read_len; - if (a_offset > a_fs_attr->rd.buf_size) { + if (a_offset > a_fs_attr->size) { return 0; } - if (a_len + a_offset > a_fs_attr->rd.buf_size) - read_len = a_fs_attr->rd.buf_size - (size_t) a_offset; + if (a_offset + a_len > a_fs_attr->size) + read_len = a_fs_attr->size - (size_t) a_offset; else read_len = a_len;