diff --git a/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp b/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp index 84b4db25ab..49691617ac 100644 --- a/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp +++ b/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp @@ -77,9 +77,9 @@ UnixRequest::GetCurrentChunk(void*& data, size_t& size) void -UnixRequest::SetAncillaryData(ancillary_data_container* data) +UnixRequest::UnsetAncillaryData() { - fAncillaryData = data; + fAncillaryData = NULL; } @@ -213,6 +213,7 @@ UnixBufferQueue::Read(UnixRequest& request) while (entry != NULL && offsetDelta > entry->offset) { fAncillaryData.RemoveHead(); offsetDelta -= entry->offset; + gStackModule->delete_ancillary_data_container(entry->data); delete entry; entry = fAncillaryData.Head(); @@ -296,7 +297,7 @@ UnixBufferQueue::Write(UnixRequest& request) if (ancillaryEntry != NULL) { fAncillaryData.Add(ancillaryEntry); ancillaryEntryDeleter.Detach(); - request.SetAncillaryData(NULL); + request.UnsetAncillaryData(); ancillaryEntry = NULL; } diff --git a/src/add-ons/kernel/network/protocols/unix/UnixFifo.h b/src/add-ons/kernel/network/protocols/unix/UnixFifo.h index 89345e9f22..eb0be23277 100644 --- a/src/add-ons/kernel/network/protocols/unix/UnixFifo.h +++ b/src/add-ons/kernel/network/protocols/unix/UnixFifo.h @@ -47,8 +47,8 @@ public: bool GetCurrentChunk(void*& data, size_t& size); ancillary_data_container* AncillaryData() const { return fAncillaryData; } - void SetAncillaryData(ancillary_data_container* data); void AddAncillaryData(ancillary_data_container* data); + void UnsetAncillaryData(); struct sockaddr_storage* Address() const { return fAddress; }