In the Linux kernel, the following vulnerability has been resolved:
tls: stop recv() if initial processrxlist gave us non-DATA
If we have a non-DATA record on the rxlist and another record of the same type still on the queue, we will end up merging them: - processrx_list copies the non-DATA record - we start the loop and process the first available record since it's of the same type - we break out of the loop since the record was not DATA
Just check the record type and jump to the end in case processrxlist did some work.