bug of BeginEndMarkReceiveFilter in version

Apr 16, 2014 at 10:10 AM
When use "<record>","</record>" as begin end mark. In a very special condition the ProcessMatchedRequest function's argument commandData will less than the real.

When send data divide like this:

the ProcessMatchedRequest function will recv "<record><var></var></record". 1 byte less than

send data.

to fix this bug, you can change BeginEndmarkReceiveFilter.cs line 118

                int parsedLen = endPos - offset + m_EndSearchState.Mark.Length - prevEndMarkMatched;
                int parsedLen = endPos - offset + m_EndSearchState.Mark.Length;
                if (endPos == offset)
                    parsedLen = parsedLen - prevEndMarkMatched;
Apr 16, 2014 at 11:56 AM
Cool finding, I'll check it and make the change.

I am also welcome you to fork a branch and make the change by yourself and then pull a request.
Apr 22, 2014 at 11:41 AM
Hello Rosebush,

I had done a change to fix this issue, but the fixing way is not same with yours. This commit is in branch v1.6, and I think the code in master doesn't has this issue.