|
@@ -1417,7 +1417,13 @@ xlog_recover_add_to_trans(
|
|
return 0;
|
|
return 0;
|
|
item = trans->r_itemq;
|
|
item = trans->r_itemq;
|
|
if (item == NULL) {
|
|
if (item == NULL) {
|
|
- ASSERT(*(uint *)dp == XFS_TRANS_HEADER_MAGIC);
|
|
|
|
|
|
+ /* we need to catch log corruptions here */
|
|
|
|
+ if (*(uint *)dp != XFS_TRANS_HEADER_MAGIC) {
|
|
|
|
+ xlog_warn("XFS: xlog_recover_add_to_trans: "
|
|
|
|
+ "bad header magic number");
|
|
|
|
+ ASSERT(0);
|
|
|
|
+ return XFS_ERROR(EIO);
|
|
|
|
+ }
|
|
if (len == sizeof(xfs_trans_header_t))
|
|
if (len == sizeof(xfs_trans_header_t))
|
|
xlog_recover_add_item(&trans->r_itemq);
|
|
xlog_recover_add_item(&trans->r_itemq);
|
|
memcpy(&trans->r_theader, dp, len); /* d, s, l */
|
|
memcpy(&trans->r_theader, dp, len); /* d, s, l */
|