aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorva-kuznecov <va-kuznecov@ydb.tech>2023-02-13 15:26:32 +0300
committerva-kuznecov <va-kuznecov@ydb.tech>2023-02-13 15:26:32 +0300
commit55ccb2badc5b0b4ec95b727d386be4c3865953d0 (patch)
treea0e703d3f6112c1b2246f7a00a6af3470ad49806
parent3e456a1cf49ee640659b22a6799a221b0ebd01ec (diff)
downloadydb-55ccb2badc5b0b4ec95b727d386be4c3865953d0.tar.gz
Fix ub in erasure_ut.cpp
-rw-r--r--ydb/core/erasure/erasure_ut.cpp16
1 files changed, 2 insertions, 14 deletions
diff --git a/ydb/core/erasure/erasure_ut.cpp b/ydb/core/erasure/erasure_ut.cpp
index 3029d8387a8..035c6133f96 100644
--- a/ydb/core/erasure/erasure_ut.cpp
+++ b/ydb/core/erasure/erasure_ut.cpp
@@ -7,8 +7,6 @@ namespace NKikimr {
void TestMissingPartWithRandomData(TErasureType &groupType, ui32 *missingPartIdx, ui32 missingParts,
ui32 dataSize, bool isRestoreParts, bool isRestoreFullData, TString &info) {
- NPrivate::TMersenne64 randGen(Seed());
-
ui32 partMask = ~(ui32)0;
for (ui32 i = 0; i < missingParts; ++i) {
partMask &= ~(ui32)(1ul << missingPartIdx[i]);
@@ -18,18 +16,8 @@ void TestMissingPartWithRandomData(TErasureType &groupType, ui32 *missingPartIdx
(isRestoreParts ? "true" : "false"),
(isRestoreFullData ? "true" : "false"));
VERBOSE_COUT(" dataSize# " << dataSize << Endl);
- TString testString;
- testString.resize(dataSize);
- char *writePosChar = (char *)testString.data();
- ui32 charParts = testString.size() % sizeof(ui64);
- for (ui32 i = 0; i < charParts; ++i) {
- writePosChar[i] = (char)randGen.GenRand();
- }
- ui64 *writePos64 = (ui64 *)writePosChar;
- ui32 ui64Parts = testString.size() / sizeof(ui64);
- for (ui32 i = 0; i < ui64Parts; ++i) {
- writePos64[i] = randGen.GenRand();
- }
+ TString testString = TString::Uninitialized(dataSize);
+ Seed().Read(testString.Detach(), testString.size());
// Split the data into parts
TDataPartSet partSet;