SILC_TASK_CALLBACK(dump_stats)
{
FILE *fdd;
- int fd;
+ int fild;
char filename[256];
memset(filename, 0, sizeof(filename));
snprintf(filename, sizeof(filename) - 1, "/tmp/silcd.%d.stats-XXXXXX", getpid());
- fd = mkstemp(filename);
- if (fd == -1)
+ fild = mkstemp(filename);
+ if (fild == -1)
return;
- fdd = fdopen(fd, "w");
+ fdd = fdopen(fild, "w");
+ if (fdd == NULL) {
+ close(fild);
+ unlink(filename);
+ return;
+ }
#define STAT_OUTPUT(fmt, stat) fprintf(fdd, fmt "\n", (int)stat);