CVSROOT:        /cvs
Module name:    src
Changes by:     dera...@cvs.openbsd.org 2025/06/18 07:50:02

Modified files:
        lib/libc/asr   : asr.c 

Log message:
Periodic re-check of /etc/resolv.conf was done with stat(), then open(),
then parse.  This is not a TOCTOU because there is no data dependency
problem.
However, this is intricately tied into an undocumented secret contract
between libc and kernel for pledge("dns"), where a pledge_namei() callback
checks which path & system call is doing the operation.  I had to
add a SYS_stat check rather than relying on just the SYS_open check.
I prefer to be reduce the sneakiness.
In a year after statically-linked binaries have been replaced everywhere,
I can tighten the pledge_namei() check by removing the SYS_stat check.
ok dlg guenther florian

Reply via email to