Skip to content

Commit 33c9913

Browse files
committed
Bug#33772598 Make block fill in OM_ENCRYPT_KEY for TS and UNDO
Change-Id: Iccbd00574372636e0ec6759179ffae89cb6915b4
1 parent 2e24fd6 commit 33c9913

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

storage/ndb/src/kernel/blocks/lgman.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,6 +1628,16 @@ Lgman::open_file(Signal* signal,
16281628
req->file_size_lo = (Uint32)(size & 0xFFFFFFFF);
16291629
req->auto_sync_size = 0;
16301630

1631+
if ((req->fileFlags & FsOpenReq::OM_ENCRYPT_CIPHER_MASK) != 0)
1632+
{
1633+
ndbrequire(handle->m_cnt == 1);
1634+
ndbrequire(import(handle->m_ptr[FsOpenReq::ENCRYPT_KEY_MATERIAL],
1635+
(const Uint32*)&FsOpenReq::DUMMY_KEY,
1636+
FsOpenReq::DUMMY_KEY.get_needed_words()));
1637+
handle->m_cnt++;
1638+
req->fileFlags |= FsOpenReq::OM_ENCRYPT_KEY;
1639+
}
1640+
16311641
sendSignal(NDBFS_REF, GSN_FSOPENREQ, signal, FsOpenReq::SignalLength, JBB,
16321642
handle);
16331643
}

storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ Ndbfs::execFSOPENREQ(Signal* signal)
667667
FsOpenReq::v4_getBasePath(fsOpenReq->fileNumber) == FsOpenReq::BP_DD_DF)
668668
{ /* TS data files */
669669
require((fsOpenReq->fileFlags & FsOpenReq::OM_ENCRYPT_XTS));
670-
require(!(fsOpenReq->fileFlags & FsOpenReq::OM_ENCRYPT_KEY));
670+
require((fsOpenReq->fileFlags & FsOpenReq::OM_ENCRYPT_KEY));
671671
if (page_size == 0) fprintf(stderr,"YYY: %s: %u: %s: page_size %zu\n",__func__,__LINE__,file->theFileName.c_str(),(size_t)page_size);
672672
require(page_size > 0);
673673
}
@@ -676,7 +676,7 @@ Ndbfs::execFSOPENREQ(Signal* signal)
676676
FsOpenReq::v4_getBasePath(fsOpenReq->fileNumber) == FsOpenReq::BP_DD_UF)
677677
{ /* LG undo files */
678678
require((fsOpenReq->fileFlags & FsOpenReq::OM_ENCRYPT_XTS));
679-
require(!(fsOpenReq->fileFlags & FsOpenReq::OM_ENCRYPT_KEY));
679+
require((fsOpenReq->fileFlags & FsOpenReq::OM_ENCRYPT_KEY));
680680
if (page_size == 0) fprintf(stderr,"YYY: %s: %u: %s: page_size %zu\n",__func__,__LINE__,file->theFileName.c_str(),(size_t)page_size);
681681
require(page_size > 0);
682682
}

storage/ndb/src/kernel/blocks/tsman.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,15 @@ Tsman::open_file(Signal* signal,
10771077
extent_pages);
10781078
#endif
10791079

1080+
if ((req->fileFlags & FsOpenReq::OM_ENCRYPT_CIPHER_MASK) != 0)
1081+
{
1082+
ndbrequire(handle->m_cnt == 1);
1083+
ndbrequire(import(handle->m_ptr[FsOpenReq::ENCRYPT_KEY_MATERIAL],
1084+
(const Uint32*)&FsOpenReq::DUMMY_KEY,
1085+
FsOpenReq::DUMMY_KEY.get_needed_words()));
1086+
handle->m_cnt++;
1087+
req->fileFlags |= FsOpenReq::OM_ENCRYPT_KEY;
1088+
}
10801089
sendSignal(NDBFS_REF, GSN_FSOPENREQ, signal, FsOpenReq::SignalLength, JBB,
10811090
handle);
10821091

0 commit comments

Comments
 (0)