Bug#280282: exim4-daemon-heavy: files in /var/spool/exim4/scan are
mode 666
Roderick Schertler
roderick at argon.org
Tue Feb 14 19:50:28 UTC 2006
On Tue, 14 Feb 2006 16:46:21 +0100, Marc Haber <mh+debian-packages at zugschlus.de> said:
>
> That sounds, however, reasonably easy fixable. I do not have too much
> clue, but would it be enough to do something like
> mode_t umask_save;
> umask_save=umask(077);
> fopen();
> umask(umask_save);
> for all fopen calls found in demime.c?
Yes, that is direct and I believe it would work. I think it isn't just
demime.c which needs fixing, though. Eg, in spool_mbox.c, line 59.
/* open [message_id].eml file for writing */
(void)string_format(mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
mbox_file = Ufopen(mbox_path,"wb");
I think a wrapper which accepted a mode argument would be a better
overall solution. Some parts of the code would even be simplified
(such as daemon.c, which does fopen()/fchmod() on the PID file -- it
would even be made safer because there's a race condition in the code
currently there).
src/buildconfig.c:new = fopen("config.h", "wb");
src/daemon.c: f = Ufopen(pid_file_path, "wb");
src/demime.c: *f = fopen(CS file_name,"wb+");
src/malware.c: scanner_record = fopen(CS file_name,"wb");
src/mime.c: f = fopen(CS filename,"wb+");
src/mime.c: f = fopen(CS fname,"wb+");
src/mime.c: f = fopen(CS filename,"wb+");
src/pcre/dftables.c:f = fopen(argv[1], "wb");
src/pcre/pcretest.c: outfile = fopen(argv[op+1], "wb");
src/pcre/pcretest.c: FILE *f = fopen((char *)to_file, "wb");
src/spool_mbox.c: mbox_file = Ufopen(mbox_path,"wb");
--
Roderick Schertler
roderick at argon.org
More information about the Pkg-exim4-maintainers
mailing list