logprint checks for whether the inode log item extends across a log
record boundary so that it doesn't try to dereference beyond the ned
of the buffer containing the log items. It doesn' however, take into
account log items with attribute forks in them, and so doesn't catch
the overrun in this case. Fix it.
reported-by: Alexander Tsvetkov <alexander.tsvetkov@oracle.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
xlog_print_trans_inode_core(&dino);
*ptr += xfs_icdinode_size(dino.di_version);
- if (*i == num_ops-1 && f->ilf_size == 3) {
+ if (*i == num_ops-1 && f->ilf_size >= 3) {
return 1;
}