Snap for 9883577 from d66eb851223d4bfc17bbf8f19712c10985cfedc4 to udc-release Change-Id: Iaead0d191ee378e7be71afea1b336ec5159af5cc
diff --git a/fuzzer/fmq_fuzzer.cpp b/fuzzer/fmq_fuzzer.cpp index 246b79f..1c92814 100644 --- a/fuzzer/fmq_fuzzer.cpp +++ b/fuzzer/fmq_fuzzer.cpp
@@ -123,7 +123,7 @@ return; } FuzzedDataProvider fdp(&readerData[0], readerData.size()); - payload_t* ring = nullptr; + payload_t* ring = reinterpret_cast<payload_t*>(readMq.getRingBufferPtr()); while (fdp.remaining_bytes()) { typename Queue::MemTransaction tx; size_t numElements = fdp.ConsumeIntegralInRange<size_t>(0, kMaxNumElements); @@ -136,9 +136,6 @@ // the ring buffer is only next to the read/write counters when there is // no user supplied fd if (!userFd) { - if (ring == nullptr) { - ring = firstStart; - } if (fdp.ConsumeIntegral<uint8_t>() == 1) { uint64_t* writeCounter = getCounterPtr(ring, desc, android::hardware::details::WRITEPTRPOS); @@ -184,7 +181,7 @@ template <typename Queue, typename Desc> void writer(const Desc& desc, Queue& writeMq, FuzzedDataProvider& fdp, bool userFd) { - payload_t* ring = nullptr; + payload_t* ring = reinterpret_cast<payload_t*>(writeMq.getRingBufferPtr()); while (fdp.remaining_bytes()) { typename Queue::MemTransaction tx; size_t numElements = 1; @@ -199,9 +196,6 @@ // the ring buffer is only next to the read/write counters when there is // no user supplied fd if (!userFd) { - if (ring == nullptr) { - ring = firstStart; - } if (fdp.ConsumeIntegral<uint8_t>() == 1) { uint64_t* readCounter = getCounterPtr(ring, desc, android::hardware::details::READPTRPOS);
diff --git a/include/fmq/MessageQueueBase.h b/include/fmq/MessageQueueBase.h index 9eb36fe..f99e335 100644 --- a/include/fmq/MessageQueueBase.h +++ b/include/fmq/MessageQueueBase.h
@@ -421,6 +421,11 @@ */ bool commitRead(size_t nMessages); + /** + * Get the pointer to the ring buffer. Useful for debugging and fuzzing. + */ + uint8_t* getRingBufferPtr() const { return mRing; } + private: size_t availableToWriteBytes() const; size_t availableToReadBytes() const;