Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/usr.bin/rlogin



In article <28236.1588524399%splode.eterna.com.au@localhost>,
matthew green  <mrg%eterna.com.au@localhost> wrote:
>"Christos Zoulas" writes:
>> Module Name:	src
>> Committed By:	christos
>> Date:		Sun May  3 16:32:16 UTC 2020
>> 
>> Modified Files:
>> 	src/usr.bin/rlogin: rlogin.c
>> 
>> Log Message:
>> PR/54435: Adjust for new kernel behavior of soreceive(9) clearing MSG_OOB
>> when receiving the oob message. This made SIOCATMARK return always 0 since
>> the oob message was cleared. Instead, use recvmsg(2) to determine if
>> the message was oob or not. This works with both the old and new kernel
>> and it is not racy.
>
>but old binaries still no longer work?

Old binaries no longer work.

>that seems like a binary compatiblility issue to me and you
>should change the kernel to make them work again, not change
>userland to match some new kernel thing, particularly where
>the change itself was debated considerably and not espcially
>necessary for existing OOB using code and no new code should
>be added...

The best way to fix this is to undo the kernel change so that it
behaves the old way. But that makes poll(2) behave incorrectly as
mentioned in the PR. All other uses of SIOCATMARK in the tree
including the example in PSD, use SIOCATMARK before reading to
determine if an OOB packet has arrived.

christos



Home | Main Index | Thread Index | Old Index