<div dir="ltr">attached is the patch that's the reason why this morning i went through the other places where toybox looks at errno without first checking that the function call failed...<div><br></div><div>i think we should take this fix since POSIX allows errno to be clobbered by a successful call to most functions ["The setting of errno after a successful call to a function is unspecified unless the description of that function specifies that errno shall not be modified"], and that certainly happens in practice.</div><div><br></div><div>there's definitely something odd going on here though. the reason i've not added a test case is that i can't reproduce this at all on glibc/x86-64, nor on bionic/x86-64. i can reproduce it on bionic/arm64, but not quite as reliably as the person who hit this in practice while doing real work (and they only see it 1/100 runs). but what we do have in common is that we're seeing errno set to ENOENT (!), and i have no explanation for how getdelim() is clobbering errno with that specific value. so i think we have more than one bug, but this is a bug regardless, so... patch attached.</div><div><br></div></div>