diff options
Diffstat (limited to 'src/tools/fuzzing/fuzzing.cpp')
-rw-r--r-- | src/tools/fuzzing/fuzzing.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/tools/fuzzing/fuzzing.cpp b/src/tools/fuzzing/fuzzing.cpp index 0a4f8e581..4a611345d 100644 --- a/src/tools/fuzzing/fuzzing.cpp +++ b/src/tools/fuzzing/fuzzing.cpp @@ -202,7 +202,8 @@ void TranslateToFuzzReader::setupMemory() { size_t numSegments = upTo(8) + 1; for (size_t i = 0; i < numSegments; i++) { auto segment = builder.makeDataSegment(); - segment->setName(Name::fromInt(i), false); + segment->setName(Names::getValidDataSegmentName(wasm, Name::fromInt(i)), + false); segment->isPassive = bool(upTo(2)); size_t segSize = upTo(USABLE_MEMORY * 2); segment->data.resize(segSize); @@ -214,7 +215,7 @@ void TranslateToFuzzReader::setupMemory() { memCovered += segSize; segment->memory = wasm.memories[0]->name; } - wasm.dataSegments.push_back(std::move(segment)); + wasm.addDataSegment(std::move(segment)); } } else { // init some data @@ -3196,8 +3197,9 @@ Expression* TranslateToFuzzReader::makeMemoryInit() { if (!allowMemory) { return makeTrivial(Type::none); } - uint32_t segment = upTo(wasm.dataSegments.size()); - size_t totalSize = wasm.dataSegments[segment]->data.size(); + Index segIdx = upTo(wasm.dataSegments.size()); + Name segment = wasm.dataSegments[segIdx]->name; + size_t totalSize = wasm.dataSegments[segIdx]->data.size(); size_t offsetVal = upTo(totalSize); size_t sizeVal = upTo(totalSize - offsetVal); Expression* dest = makePointer(); @@ -3211,7 +3213,9 @@ Expression* TranslateToFuzzReader::makeDataDrop() { if (!allowMemory) { return makeTrivial(Type::none); } - return builder.makeDataDrop(upTo(wasm.dataSegments.size())); + Index segIdx = upTo(wasm.dataSegments.size()); + Name segment = wasm.dataSegments[segIdx]->name; + return builder.makeDataDrop(segment); } Expression* TranslateToFuzzReader::makeMemoryCopy() { |