Re: TOCTOU bug in make(1)
Valery Ushakov <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.toolchain |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Oct 07, 2022 at 10:19:44 +1300, Lloyd Parkes wrote: > On 7/10/22 09:49, Joerg Sonnenberger wrote: > > Am Fri, Oct 07, 2022 at 09:07:10AM +1300 schrieb Lloyd Parkes: > > > > > > That's a good point. Personally, I had forgotten that unlinking directories > > > was a thing. We should put a comment in the code for unlink_file() about > > > that. > > > > Well, if you read the code you should start to wonder why it does the > > whole lstat + check for directory dance... > > Yeah, nah. Only people those few people who are actually still using antique > Unix systems will be able to work this out. Everyone else will need to be > psychic and that isn't an acceptable way to write code. > > This code is in the core NetBSD source tree (usr.bin/make) and the > unlink_file() function has no use in NetBSD. This is intrinsically worth > documenting. > > I have to admit that I sometimes wonder whether or not it is true that the > bulk of the comments in the *BSD code base is in fact the BSD license > repeated across each .c file. If we can spend 30 seconds typing in a one > line comment that saves one person 15 minutes of head scratching, then we > have already made our software more efficient as a code base to use. It did have a comment, but it was removed in revision 1.548. It also, unnecessarily, IMHO, decided to change the return type to a more "modern" bool thus further obscuring the fact that the function was a simple wrapper around unlink(2). -uwe