diff options
-rw-r--r-- | lasso/utils.h | 6 | ||||
-rw-r--r-- | lasso/xml/xml.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lasso/utils.h b/lasso/utils.h index 0595f592..94ff4884 100644 --- a/lasso/utils.h +++ b/lasso/utils.h @@ -299,6 +299,12 @@ #define lasso_list_add_xml_node(dest, src) \ { \ + xmlNode *__tmp_src = xmlCopyNode(src, 1); \ + lasso_list_add_non_null(dest, __tmp_src); \ + } + +#define lasso_list_add_new_xml_node(dest, src) \ + { \ xmlNode *__tmp_src = src; \ lasso_list_add_non_null(dest, __tmp_src); \ } diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c index 9d57b29c..859481cf 100644 --- a/lasso/xml/xml.c +++ b/lasso/xml/xml.c @@ -629,8 +629,8 @@ lasso_node_encrypt(LassoNode *lasso_node, xmlSecKey *encryption_public_key, /* Create a new EncryptedElement */ encrypted_element = LASSO_SAML2_ENCRYPTED_ELEMENT(lasso_saml2_encrypted_element_new()); lasso_assign_gobject(encrypted_element->original_data, lasso_node); - lasso_list_add_xml_node(encrypted_element->EncryptedKey, xmlCopyNode(encrypted_key_node, 1)); - lasso_assign_xml_node(encrypted_element->EncryptedData, xmlCopyNode(xmlDocGetRootElement(doc), 1)); + lasso_list_add_xml_node(encrypted_element->EncryptedKey, encrypted_key_node); + lasso_assign_xml_node(encrypted_element->EncryptedData, xmlDocGetRootElement(doc)); lasso_transfer_gobject(ret, encrypted_element); cleanup: |