Ack, code review only.

Thanks,
Praveen
On 16-Jul-14 2:07 PM, mathi.naic...@oracle.com wrote:
>   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
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to