Hi, I've attached a patch to make atop create decompressed raw logs safely by using mkstemp.
I think that it's still possible, by making /tmp/atop.d a symbolic link to a directory containing a file named atop.acct, to make atop remove the file named atop.acct in the linked-to directory. -- Matt Kraai https://ftbfs.org/kraai
--- atop-1.23~/rawlog.c 2011-04-14 20:52:34.000000000 -0700 +++ atop-1.23/rawlog.c 2011-04-14 20:59:55.000000000 -0700 @@ -477,18 +477,18 @@ */ fprintf(stderr, "Decompressing logfile ....\n"); - snprintf(tmpname2, sizeof tmpname2, "/tmp/atopwrk%d", getpid()); - snprintf(command, sizeof command, "gunzip -c %s > %s", - tmpname1, tmpname2); - system (command); + snprintf(tmpname2, sizeof tmpname2, "/tmp/atopwrkXXXXXX"); - if ( (rawfd = open(tmpname2, O_RDONLY)) == -1) + if ( (rawfd = mkstemp(tmpname2)) == -1) { fprintf(stderr, "%s - ", rawname); perror("open decompressed raw file"); cleanstop(7); } + snprintf(command, sizeof command, "gunzip -c %s > %s", + tmpname1, tmpname2); + system (command); unlink(tmpname2); }