mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-04 18:26:19 +01:00
glib/gfileutils.c: use 64 bits for value in get_tmp_file()
On 32 bit systems 'long' value will overflow in 2038 and become negative. As it is used to index into letters array, and % operation preserves signs, data corruption will then occur. Signed-off-by: Alexander Kanavin <alex@linutronix.de>
This commit is contained in:
parent
40fb81f0ea
commit
b4d60ba136
@ -1500,7 +1500,7 @@ get_tmp_file (gchar *tmpl,
|
||||
static const char letters[] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
static const int NLETTERS = sizeof (letters) - 1;
|
||||
glong value;
|
||||
gint64 value;
|
||||
gint64 now_us;
|
||||
static int counter = 0;
|
||||
|
||||
@ -1521,7 +1521,7 @@ get_tmp_file (gchar *tmpl,
|
||||
|
||||
for (count = 0; count < 100; value += 7777, ++count)
|
||||
{
|
||||
glong v = value;
|
||||
gint64 v = value;
|
||||
|
||||
/* Fill in the random bits. */
|
||||
XXXXXX[0] = letters[v % NLETTERS];
|
||||
|
Loading…
Reference in New Issue
Block a user