diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 2587f16c..cdda77ca 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,9 @@ +2008-06-26 Werner Koch + + * w32-util.c (_gpgme_mkstemp): Replace sprint by stpcpy. + (mkstemp): Need to use GetSystemTimeAsFileTime for better + compatibility. + 2008-06-25 Marcus Brinkmann * gpgme-w32spawn.c: New file. diff --git a/gpgme/w32-util.c b/gpgme/w32-util.c index fc8e4be1..05a9069b 100644 --- a/gpgme/w32-util.c +++ b/gpgme/w32-util.c @@ -470,9 +470,11 @@ mkstemp (char *tmpl) /* Get some more or less random data. */ { - struct timeval tv; - gettimeofday (&tv, NULL); - random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; + FILETIME ft; + + GetSystemTimeAsFileTime (&ft); + random_time_bits = (((uint64_t)ft.dwHighDateTime << 32) + | (uint64_t)ft.dwLowDateTime); } value += random_time_bits ^ getpid (); @@ -537,7 +539,7 @@ _gpgme_mkstemp (int *fd, char **name) tmpname = malloc (strlen (tmp) + 13 + 1); if (!tmpname) return -1; - sprintf (tmpname, "%s\\gpgme-XXXXXX", tmp); + strcpy (stpcpy (tmpname, tmp), "\\gpgme-XXXXXX"); *fd = mkstemp (tmpname); if (fd < 0) return -1;