=== modified file 'src/tools.cc' --- src/tools.cc 2012-11-29 08:51:27 +0000 +++ src/tools.cc 2013-01-23 15:20:26 +0000 @@ -130,28 +130,25 @@ { FILE *fp = NULL; static char command[256]; + + const mode_t prev_umask=umask(S_IRWXU); + #if HAVE_MKSTEMP - char filename[] = "/tmp/squid-XXXXXX"; int tfd = mkstemp(filename); - - if (tfd < 0) - return; - - if ((fp = fdopen(tfd, "w")) == NULL) - return; - + if (tfd < 0 || (fp = fdopen(tfd, "w")) == NULL) { + umask(prev_umask); + return; + } #else - char *filename; - - if ((filename = tempnam(NULL, APP_SHORTNAME)) == NULL) - return; - - if ((fp = fopen(filename, "w")) == NULL) - return; - + if ((filename = tempnam(NULL, APP_SHORTNAME)) == NULL || + (fp = fopen(filename, "w")) == NULL) { + umask(prev_umask); + return; + } #endif + umask(prev_umask); if (Config.EmailFrom) fprintf(fp, "From: %s\n", Config.EmailFrom); @@ -159,15 +156,11 @@ fprintf(fp, "From: %s@%s\n", APP_SHORTNAME, uniqueHostname()); fprintf(fp, "To: %s\n", Config.adminEmail); - fprintf(fp, "Subject: %s\n", dead_msg()); - fclose(fp); snprintf(command, 256, "%s %s < %s", Config.EmailProgram, Config.adminEmail, filename); - if (system(command)) {} /* XXX should avoid system(3) */ - unlink(filename); }