branch: elpa/pdf-tools commit d63a1e7d87f9b0a19209f2eeb170bcf64612aa2f Author: JunyuanChen <75352049+junyuanc...@users.noreply.github.com> Commit: Vedang Manerikar <ved.maneri...@gmail.com>
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' ``` --- server/epdfinfo.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/server/epdfinfo.c b/server/epdfinfo.c index 3e0e7c1166..95a7f1628a 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; }