file locking problem
utzoo!decvax!duke!chico!harpo!floyd!houxi!houxm!3723edm
utzoo!decvax!duke!chico!harpo!floyd!houxi!houxm!3723edm
Wed Jan 27 22:59:39 AEST 1982
I have come across a programming problem on release 3.0 and 4.0
that is easy to solve except when the program is run setuid to root.
The program I am modifying is part of a package called `at'.
It must create a file with a unique name.
Since the file is guaranteed to be mode 444, creat could be
used, and would be guaranteed to fail if the file already
existed---except that the program is run as root.
An easy answer is to use access(2) to find out if the file exists,
and as long as the access fails, do a creat. The problem with this
is that in the short span of time between the access and the creat
calls, another invocation might have done a creat on the
same name.
Short of forking and doing a setuid to a non-root uid, or a change
to the kernel, is there a way around this?
Eli Mantel (houxm!3723edm)
More information about the Comp.unix.wizards
mailing list