Spot the bug in pooled memory

from Span<T> and Memory<T>
C# 14 / .NET 10 intermediate 4 min 1 issue to find

Find the lifetime bug in this pooled-memory helper.

csharp
using System;
using System.Buffers;

static ReadOnlyMemory<byte> RentHeader()
{
    byte[] buffer = ArrayPool<byte>.Shared.Rent(3);
    try
    {
        buffer[0] = 72;
        buffer[1] = 68;
        buffer[2] = 82;
        return buffer.AsMemory(0, 3);
    }
    finally
    {
        ArrayPool<byte>.Shared.Return(buffer);
    }
}
Open in playground
Report an error