Hi aMinh, NTFS has already re-assigned length of buffer to MAX_ADDITIONAL_TEXT_LENGTH if it is exceeds to MAX_ADDITIONAL_TEXT_LENGTH. So we don't need to add any more for this check.
Regards Canh -----Original Message----- From: minh chau [mailto:[email protected]] Sent: Wednesday, February 15, 2017 10:08 AM To: Canh Van Truong; [email protected]; [email protected] Cc: [email protected] Subject: Re: [PATCH 1 of 1] ntf: workaround to fix failed upgrade [#2300] Hi Canh, Ack with comments: - The patch #2006 introduced another check against MAX_ADDITIONAL_TEXT_LENGTH, it's equal to SA_LOG_MAX_RECORD_SIZE too (65535). So we need to add the same check of #2006 for #2300 so that NTF server copes with possibly invalid input. - We encounter the upgrade problem because NTF Agent in Opensaf 5.0 does not have patch of #2006, so when we move on and Opensaf 5.0 is no longer maintained, then this workaround should be removed from NTF server side. The reason is this kind of check (or auto-adjustment) should be done in NTF Agent only, not in NTF Server side. So I think we should add comment besides this workaround as a reminder. Thanks, Minh On 14/02/17 17:20, Canh Van Truong wrote: > src/ntf/ntfd/NtfLogger.cc | 9 +++++++++ > 1 files changed, 9 insertions(+), 0 deletions(-) > > > During cluster upgrade from an old OpenSAF version which have not > included the fix #2006 to one that have the fix in, if there is an > code fault related to inconsistent in additionalText and lengthAdditionalText in NTF application, could lead to upgadate failed. > > This patch fix to add an workwround in NTFs, adjust > lengthAdditionalText to correct one if NTFs find the mismatch > > Note: The patch applies on branch 5.0 has little differences. There > are some changes in test cases ntftest 30 3... to change the length of additionalText+1 and lengthAdditionalText are the same. > > diff --git a/src/ntf/ntfd/NtfLogger.cc b/src/ntf/ntfd/NtfLogger.cc > --- a/src/ntf/ntfd/NtfLogger.cc > +++ b/src/ntf/ntfd/NtfLogger.cc > @@ -197,6 +197,15 @@ SaAisErrorT NtfLogger::logNotification(N > > sendNotInfo = notif->getNotInfo(); > ntfsv_get_ntf_header(sendNotInfo, &ntfHeader); > + > + // Workaround to fix with failed upgrade // Auto correction if > + there is inconsistent b/w lengthAdditionalText and additionalText > + if (ntfHeader->additionalText != NULL && > + ntfHeader->lengthAdditionalText > strlen(ntfHeader->additionalText) + 1) { > + LOG_WA("Mismatch b/w lengthAdditionalText and additionalText. Re-Adjust!"); > + ntfHeader->lengthAdditionalText = > + strlen(ntfHeader->additionalText) + 1; } > + > logBuffer.logBufSize = ntfHeader->lengthAdditionalText; > logBuffer.logBuf = (SaUint8T*)&addTextBuf[0]; > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
