Signal 11 is SIGSEGV, which indicates an invalid memory access. If your two lines fixed it, it means FBuffer was nil or something garbage.
Please test first with latest FPC 3.2.2 and if still happens, file a bug report with request (both header and body) that can trigger this behavior. From the code, I can see that FBuffer is initialized and filled by ReadString, which is called by ReadRequestHeaders, which is quite well guarded by using ReadBufLen which is a const, return value of FSocket.Read is checked for negative value and if false the buffer is then adjusted accordingly. BUT, it didn't check for 0, which MIGHT be possible and SetLength with length parameter set to 0 is the same as setting it to nil.