Skip to content

Commit 7884d09

Browse files
committed
WL#15051 Refactor old functionality.
Post push fix. Keep NDBXFRM1 header byte order safe. NDBXFRM1 file header and trailer fields are written with native byte order. When reading file from system with opposite byte order the fields that are sensitive to byte order are adjusted. WL#15051 added a new field m_encrypt_krm_key_count in header, but did not handle byte order on read. Added toggle if needed for the field and also added static asserts to remind developer when adding fields to header or trailer in future. Change-Id: I2ee1f73a5004598fea94567112f5d103cb8a17c5
1 parent 72979d0 commit 7884d09

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

storage/ndb/src/common/util/ndb_ndbxfrm1.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -969,6 +969,9 @@ int ndb_ndbxfrm1::trailer::fixed_trailer::toggle_endian()
969969
RETURN(-1);
970970
toggle_endian64(&m_flags);
971971
toggle_endian64(&m_data_size);
972+
static_assert(sizeof(ndb_ndbxfrm1::trailer::fixed_trailer) == 56,
973+
"Remember update ndb_ndbxfrm1::trailer::fixed_trailer::toggle_endian() when "
974+
"adding new fields.");
972975
return 0;
973976
}
974977

@@ -1023,6 +1026,10 @@ int ndb_ndbxfrm1::header::fixed_header::toggle_endian()
10231026
toggle_endian32(&m_encrypt_krm_keying_material_count);
10241027
toggle_endian32(&m_encrypt_key_data_unit_size);
10251028
toggle_endian32(&m_encrypt_krm_keying_material_position_in_octets);
1029+
toggle_endian32(&m_encrypt_krm_key_count);
1030+
static_assert(sizeof(ndb_ndbxfrm1::header::fixed_header) == 160,
1031+
"Remember update ndb_ndbxfrm1::header::fixed_header::toggle_endian() when "
1032+
"adding new fields.");
10261033
return 0;
10271034
}
10281035

0 commit comments

Comments
 (0)