diff options
author | Werner Koch <[email protected]> | 2008-06-26 14:38:39 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2008-06-26 14:38:39 +0000 |
commit | eccdb17c30ef564767e5279cc8eae9bc937e0e48 (patch) | |
tree | 848286f049988df0882b70d8da788254c4913d82 | |
parent | assuan/ (diff) | |
download | gpgme-eccdb17c30ef564767e5279cc8eae9bc937e0e48.tar.gz gpgme-eccdb17c30ef564767e5279cc8eae9bc937e0e48.zip |
Fix incompatibility with non-recent mingw runtimes.
-rw-r--r-- | gpgme/ChangeLog | 6 | ||||
-rw-r--r-- | gpgme/w32-util.c | 10 |
2 files changed, 12 insertions, 4 deletions
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 <[email protected]> + + * w32-util.c (_gpgme_mkstemp): Replace sprint by stpcpy. + (mkstemp): Need to use GetSystemTimeAsFileTime for better + compatibility. + 2008-06-25 Marcus Brinkmann <[email protected]> * 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; |