On Aug 5 19:43, D. Boland wrote: > Corinna Vinschen wrote: > > > Somehow the two are connected. The alias database (aliases.db) is built > > > from a plain > > > text file (aliases). If I leave the aliases file writable to the sendmail > > > user, I > > > find that the error message strings have been put right into the alias > > > text-file: > > > > > > $ cat /etc/mail/aliases > > > <21>sendmail: PID 1848: alias database /etc/mail/aliases rebuilt by > > > smmspsenet: root > > > news: root > > > webmaster: root > > > www: root > > > ftp: root > > > abuse: root > > > noc: root > > > security: root > > > root: SYSTEM > > > <22>sendmail: PID 1848: /etc/mail/aliases: 9 aliases, longest 6 bytes, 82 > > > bytes > > > total > > > > > > If I make the 'aliases' file read-only, then the file is not corrupted, > > > but the > > > error occurs. > > > > I don't see that this has to do with syslog. There's a writev to fd 3, > > but you stripped the strace so we don't know what fd 3 is connected to. > > Also, syslog writes the output to the Windows event log by default, > > unless you have a syslog daemon running, connected to /dev/log. > > > > So I guess we first have to know what fd 3 is connected to, and then > > how to reproduce the issue. > > > > I have the syslogd (inetutils-server package) running as a Windows Service, > using > cygrunsrv. > > I attached the complete strace output. The 'syslog' function works fine while > running as the cyg_server user, but after a setuid/setgid to the Sendmail > 'smmsp' > user, it fails. > > The output is quite large. I put in printf("syslog: %s\n") calls to mark the > spots > where it happens.
Can you produce another strace for the overwriting case (non-R/O aliases) for comparison? Also, can you do the same strace with no syslogd running? It might be necessary to create a few test versions of Cygwin with more debug output, but let's please see these straces first. Thanks, Corinna
pgpVge_fCLOja.pgp
Description: PGP signature