From ab7c44f2515dbf9ccbb0b68636ea7b6a6ca12d9b Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Sat, 4 Nov 2006 22:25:27 +0000 Subject: [PATCH] - Services timestamps are now always treated as an unsigned long (0..2^32-1), instead of accidently as signed long during netsynchs. This bug caused issues with values larger than 2147483647. Reported by avenger (#0002980). --- Changes | 3 +++ src/modules/m_user.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index 87f778edb..97d8b6793 100644 --- a/Changes +++ b/Changes @@ -1341,3 +1341,6 @@ Markevich (#0002866). - Win32: we now no longer crash if no access to write to service.log, suggested and patch by Xuefer (#0002886). +- Services timestamps are now always treated as an unsigned long (0..2^32-1), instead + of accidently as signed long during netsynchs. This bug caused issues with values + larger than 2147483647. Reported by avenger (#0002980). diff --git a/src/modules/m_user.c b/src/modules/m_user.c index 49bf46d97..d0b9f4f1f 100644 --- a/src/modules/m_user.c +++ b/src/modules/m_user.c @@ -130,14 +130,14 @@ DLLFUNC CMD_FUNC(m_user) if (parc == 6 && IsServer(cptr)) { if (isdigit(*parv[4])) - sstamp = atol(parv[4]); + sstamp = strtoul(parv[4], NULL, 10); realname = (BadPtr(parv[5])) ? "" : parv[5]; umodex = NULL; } else if (parc == 8 && IsServer(cptr)) { if (isdigit(*parv[4])) - sstamp = atol(parv[4]); + sstamp = strtoul(parv[4], NULL, 10); realname = (BadPtr(parv[7])) ? "" : parv[7]; umodex = parv[5]; virthost = parv[6]; @@ -145,7 +145,7 @@ DLLFUNC CMD_FUNC(m_user) else if (parc == 9 && IsServer(cptr)) { if (isdigit(*parv[4])) - sstamp = atol(parv[4]); + sstamp = strtoul(parv[4], NULL, 10); realname = (BadPtr(parv[8])) ? "" : parv[8]; umodex = parv[5]; virthost = parv[6];