Signature removal issue fixed
This commit is contained in:
parent
eeab3a1ec1
commit
330cb83837
@ -70,17 +70,23 @@ int _tmain(int argc, _TCHAR *argv[])
|
|||||||
|
|
||||||
wxXmlNode *document = doc.GetDocumentNode();
|
wxXmlNode *document = doc.GetDocumentNode();
|
||||||
|
|
||||||
// Examine prologue if the document is already signed.
|
// Examine prologue if the document is already signed and remove all signatures.
|
||||||
for (wxXmlNode *prolog = document->GetChildren(); prolog; prolog = prolog->GetNext()) {
|
for (wxXmlNode *prolog = document->GetChildren(); prolog;) {
|
||||||
if (prolog->GetType() == wxXML_COMMENT_NODE) {
|
if (prolog->GetType() == wxXML_COMMENT_NODE) {
|
||||||
wxString content = prolog->GetContent();
|
wxString content = prolog->GetContent();
|
||||||
if (content.length() >= _countof(wxS(UPDATER_SIGNATURE_MARK)) - 1 &&
|
if (content.length() >= _countof(wxS(UPDATER_SIGNATURE_MARK)) - 1 &&
|
||||||
memcmp((const wxStringCharType*)content, wxS(UPDATER_SIGNATURE_MARK), sizeof(wxStringCharType)*(_countof(wxS(UPDATER_SIGNATURE_MARK)) - 1)) == 0)
|
memcmp((const wxStringCharType*)content, wxS(UPDATER_SIGNATURE_MARK), sizeof(wxStringCharType)*(_countof(wxS(UPDATER_SIGNATURE_MARK)) - 1)) == 0)
|
||||||
{
|
{
|
||||||
// Previous signature found. Remove it.
|
// Previous signature found. Remove it.
|
||||||
document->RemoveChild(prolog);
|
wxXmlNode *signature = prolog;
|
||||||
|
prolog = prolog->GetNext();
|
||||||
|
document->RemoveChild(signature);
|
||||||
|
wxDELETE(signature);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prolog = prolog->GetNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create cryptographic context.
|
// Create cryptographic context.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user