osaf/services/saf/ntfsv/ntfs/ntfs_evt.c | 6 +++++-
osaf/tools/safntf/src/ntfclient.c | 6 +++++-
2 files changed, 10 insertions(+), 2 deletions(-)
localtime is not thread safe and it can(has) cause crashes in services
that are multi threaded.
diff --git a/osaf/services/saf/ntfsv/ntfs/ntfs_evt.c
b/osaf/services/saf/ntfsv/ntfs/ntfs_evt.c
--- a/osaf/services/saf/ntfsv/ntfs/ntfs_evt.c
+++ b/osaf/services/saf/ntfsv/ntfs/ntfs_evt.c
@@ -336,6 +336,7 @@ static void print_header(SaNtfNotificati
SaTimeT totalTime;
SaTimeT ntfTime = (SaTimeT)0;
char time_str[24];
+ struct tm *tstamp_data, tm_info;
/* Event type */
TRACE_1("eventType = %d", (int)*notificationHeader->eventType);
@@ -355,7 +356,10 @@ static void print_header(SaNtfNotificati
ntfTime = *notificationHeader->eventTime;
totalTime = (ntfTime / (SaTimeT)SA_TIME_ONE_SECOND);
- (void)strftime(time_str, sizeof(time_str), "%d-%m-%Y %T",
localtime((const time_t *)&totalTime));
+ tstamp_data = localtime_r((const time_t *)&totalTime, &tm_info);
+ osafassert(tstamp_data);
+
+ (void)strftime(time_str, sizeof(time_str), "%d-%m-%Y %T", tstamp_data);
TRACE_1("eventTime = %lld = %s\n", (SaTimeT)ntfTime, time_str);
diff --git a/osaf/tools/safntf/src/ntfclient.c
b/osaf/tools/safntf/src/ntfclient.c
--- a/osaf/tools/safntf/src/ntfclient.c
+++ b/osaf/tools/safntf/src/ntfclient.c
@@ -748,10 +748,14 @@ static char *event_time(SaTimeT eventTim
{
time_t time_in_secs;
static char time_str[32];
+ struct tm *tstamp_data, tm_info;
time_in_secs = (eventTime / (SaTimeT) SA_TIME_ONE_SECOND);
+ tstamp_data = localtime_r(&time_in_secs, &tm_info);
+ osafassert(tstamp_data);
+
(void)strftime(time_str, sizeof(time_str), "%b %e %k:%M:%S",
- localtime(&time_in_secs));
+ tstamp_data);
return time_str;
}
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel