[Mono-dev] mono installer on go-mono website is broken

Antti S. Lankila alankila at bel.fi
Sun Oct 7 09:42:49 EDT 2007

I tried to test my previous test.cs on the mono by downloading 
it from the website. Unfortunately the installer is buggy and doesn't 
work at all. I straced it, and observed that it copies some data into a 
/tmp file with the intent to exec it. We are here right after the copy 
part has finished:

open("/tmp/upxATVSFYIAGWV", O_RDONLY)   = 3
access("/proc/6869/fd/3", R_OK|X_OK)    = 0
unlink("/tmp/upxATVSFYIAGWV")           = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
execve("/proc/6869/fd/3", ["../mono-"], [/* 36 
vars */]) = -1 ENOENT (No such file or directory)

So it unlinks the file and tries to execve it via the proc fd, which is 
(as far as I know) only a symlink to the name of the real file that 
represents that fd. So in truth the underlying system call, execve(), 
relies on that tmp file still existing, even if the process does have an 
open fd to it.

The kernel version is 2.6.22-13-generic and libc is 2.6.1-1ubuntu9.


More information about the Mono-devel-list mailing list