diff options
| author | JunyuanChen <75352049+JunyuanChen@users.noreply.github.com> | 2022-04-21 17:02:11 +0000 |
|---|---|---|
| committer | Vedang Manerikar <ved.manerikar@gmail.com> | 2022-04-25 21:03:09 -0400 |
| commit | d63a1e7d87f9b0a19209f2eeb170bcf64612aa2f (patch) | |
| tree | d10b10fd9c12db0ff9f7089bba5546a869e0b3ad | |
| parent | 007fcf1fe9f8d74bcf7a88581b724b0f15022243 (diff) | |
Use mkstemp instead of tempnam
Removes the following warning when compiling `epdfinfo`:
```
build/server/epdfinfo.c:354: warning: the use of `tempnam' is
dangerous, better use `mkstemp'
```
| -rw-r--r-- | server/epdfinfo.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/server/epdfinfo.c b/server/epdfinfo.c index 3e0e7c1..95a7f16 100644 --- a/server/epdfinfo.c +++ b/server/epdfinfo.c @@ -35,6 +35,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> +#include <unistd.h> #include <errno.h> #include <png.h> #include <math.h> @@ -346,26 +347,18 @@ strchomp (char *str) static char* mktempfile() { - char *filename = NULL; - int tries = 3; - while (! filename && tries-- > 0) + char template[] = "/tmp/epdfinfoXXXXXX"; + char *filename = malloc(sizeof(template)); + memcpy(filename, template, sizeof(template)); + int fd = mkstemp(filename); + if (fd == -1) { - - filename = tempnam(NULL, "epdfinfo"); - if (filename) - { - int fd = open(filename, O_CREAT | O_EXCL | O_RDONLY, S_IRWXU); - if (fd > 0) - close (fd); - else - { - free (filename); - filename = NULL; - } - } + fprintf (stderr, "Unable to create tempfile"); + free(filename); + filename = NULL; } - if (! filename) - fprintf (stderr, "Unable to create tempfile"); + else + close(fd); return filename; } |
