[ libetpan-Bugs-2892730 ] Crash on Windows during message_id computation

"SourceForge.net" <[email protected]> Thu, 05 Nov 2009 17:10:25 +0000
Newsgroups gmane.mail.libetpan.user
Message-ID <[email protected]>
Bugs item #2892730, was opened at 2009-11-05 20:10
Message generated for change (Tracker Item Submitted) made by perminov
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=429696&aid=2892730&group_id=41064

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: other
Group: Latest stable - libEtPan!
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Sergey Perminov (perminov)
Assigned to: Nobody/Anonymous (nobody)
Summary: Crash on Windows during message_id computation

Initial Comment:
low-level/imf/mailimf_types_helper.c file, mailimf_get_message_id function:

 1271 char * mailimf_get_message_id(void)
 1272 {
 1273   char id[MAX_MESSAGE_ID];
 1274   time_t now;
 1275   char name[MAX_MESSAGE_ID];
 1276   long value;
 1277 
 1278   now = time(NULL);
 1279   value = random();
 1280 
 1281   gethostname(name, MAX_MESSAGE_ID);
 1282   snprintf(id, MAX_MESSAGE_ID, "etPan.%lx.%lx.%x@%s",
 1283 	   now, value, getpid(), name);
 1284 
 1285   return strdup(id);
 1286 }

On Windows time_t is 8 byte long type.
In case you pass 8 instead of 4 bytes into snprintf function, 
windows runtime crashes with "memory access violation"

Environment:
Compiled under VS2008SP1

As a fix it's possible to use long instead of time_t:

--- mailimf_types_helper.c.orig	2009-11-05 21:06:34.000000000 +0300
+++ mailimf_types_helper.c	2009-11-05 21:07:08.000000000 +0300
@@ -1271,11 +1271,11 @@
 char * mailimf_get_message_id(void)
 {
   char id[MAX_MESSAGE_ID];
-  time_t now;
+  long now;
   char name[MAX_MESSAGE_ID];
   long value;
 
-  now = time(NULL);
+  now = (long)time(NULL);
   value = random();
 
   gethostname(name, MAX_MESSAGE_ID);



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=429696&aid=2892730&group_id=41064

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july