On Mon, Aug 02, 2021 at 04:36:15PM +0100, Dave Martin wrote:
On Mon, Aug 02, 2021 at 03:19:39PM +0100, Mark Brown wrote:
popen() appears to be break the _SET_VL_ONEXEC test. Between a lack of strace in my test filesystem and not spotting anything obvious in the glibc sources I can't tell exactly where it's doing something different, though it does feel like it should be a separate testcase if it's
Ah, dang, popen() will run the target program via a shell, so there will actually be two fork-exec()s, with the VL being reset to default by the second exec.
Oh, of course - it's basically a more useful system(). The bit where it adds the sh invocation was buried somewhere in the glibc source I didn't find.
This is the kind of reason why I tend not to go for it, I guess -- it looks convenient, but it's just that little bit overcooked as an API. *sigh*
Well, if you're working at the stdio level it's fine I think but this program is at the level below that.