aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Packets
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2013-09-11 11:50:18 -0700
committerNay <dnpd.dd@gmail.com>2013-09-11 11:50:18 -0700
commitbaa159dbd4472a3cff2e4256fec60431878ae1f8 (patch)
tree81dba5007ef41f0506db6096d277d5ddf96146ff /src/server/shared/Packets
parent77f90c1c67864305d532233266a4951f48f61683 (diff)
parent9578b5f87a4aa96e120b78f410ea90e141903dd7 (diff)
Merge pull request #10736 from jackpoz/localtime_race_condition
Core/Thread: Fix race condition converting time values to local time
Diffstat (limited to 'src/server/shared/Packets')
-rw-r--r--src/server/shared/Packets/ByteBuffer.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index 7777842af17..b015e8daa35 100644
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -457,8 +457,9 @@ class ByteBuffer
void AppendPackedTime(time_t time)
{
- tm* lt = localtime(&time);
- append<uint32>((lt->tm_year - 100) << 24 | lt->tm_mon << 20 | (lt->tm_mday - 1) << 14 | lt->tm_wday << 11 | lt->tm_hour << 6 | lt->tm_min);
+ tm lt;
+ ACE_OS::localtime_r(&time, &lt);
+ append<uint32>((lt.tm_year - 100) << 24 | lt.tm_mon << 20 | (lt.tm_mday - 1) << 14 | lt.tm_wday << 11 | lt.tm_hour << 6 | lt.tm_min);
}
void put(size_t pos, const uint8 *src, size_t cnt)