osaf/services/saf/logsv/lgs/lgs_fmt.c |  8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)


Wrong processing for timezone with having negative gmt offset.

diff --git a/osaf/services/saf/logsv/lgs/lgs_fmt.c 
b/osaf/services/saf/logsv/lgs/lgs_fmt.c
--- a/osaf/services/saf/logsv/lgs/lgs_fmt.c
+++ b/osaf/services/saf/logsv/lgs/lgs_fmt.c
@@ -706,7 +706,9 @@ static int extractCommonField(char *dest
                /* Get timezone offset from localtime to UTC time */
                long gmtOffset = (timeStampData->tm_gmtoff / SECOND_PER_HOUR) * 
100 +
                        (timeStampData->tm_gmtoff % SECOND_PER_HOUR) / 
SECOND_PER_MINUTE;
-               characters = snprintf(dest, dest_size, "%c%04ld", gmtOffset >= 
0 ? '+' : '-', gmtOffset);
+
+               long uGmtOffset = (gmtOffset >= 0) ? (gmtOffset) : (gmtOffset * 
-1);
+               characters = snprintf(dest, dest_size, "%c%04ld", gmtOffset >= 
0 ? '+' : '-', uGmtOffset);
                break;
 
        case C_NOTIFICATION_CLASS_ID_LETTER:
@@ -982,7 +984,9 @@ static int extractNotificationField(char
                characters = 6; /* to avoid using {} */
                long gmtOffset = (eventTimeData->tm_gmtoff / SECOND_PER_HOUR) * 
100 +
                        (eventTimeData->tm_gmtoff % SECOND_PER_HOUR) / 
SECOND_PER_MINUTE;
-               characters = snprintf(dest, dest_size, "%c%04ld", gmtOffset >= 
0 ? '+' : '-', gmtOffset);
+
+               long uGmtOffset = (gmtOffset >= 0) ? (gmtOffset) : (gmtOffset * 
-1);
+               characters = snprintf(dest, dest_size, "%c%04ld", gmtOffset >= 
0 ? '+' : '-', uGmtOffset);
                break;
 
        case N_EVENT_TYPE_LETTER:

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to