From 3de86316c9e0317fabf00114b840c192f02901a4 Mon Sep 17 00:00:00 2001 From: "Vladimir D. Seleznev" Date: Sat, 5 Oct 2019 19:26:19 +0300 Subject: [PATCH] SUSE: libomemo fix dino compat --- lurch/lib/libomemo/src/libomemo.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lurch/lib/libomemo/src/libomemo.c b/lurch/lib/libomemo/src/libomemo.c index 5c8add1..577b69a 100644 --- a/lurch/lib/libomemo/src/libomemo.c +++ b/lurch/lib/libomemo/src/libomemo.c @@ -1356,9 +1356,9 @@ int omemo_message_get_encrypted_key(omemo_message * msg_p, uint32_t own_device_i const char * key_b64 = (void *) 0; size_t key_len = 0; - - ret_val = expect_next_node(msg_p->header_node_p, mxmlGetFirstChild, KEY_NODE_NAME, &key_node_p); - if (ret_val) { + key_node_p = mxmlFindElement(msg_p->header_node_p, msg_p->header_node_p, KEY_NODE_NAME, NULL, NULL, MXML_DESCEND); + if (!key_node_p) { + // if there is not at least one key, skip the rest of the function ret_val = 0; *key_pp = (void *) 0; goto cleanup; @@ -1430,8 +1430,9 @@ int omemo_message_export_decrypted(omemo_message * msg_p, uint8_t * key_p, size_ } payload_p = g_base64_decode(payload_b64, &payload_len); - ret_val = expect_next_node(msg_p->header_node_p, mxmlGetLastChild, IV_NODE_NAME, &iv_node_p); - if (ret_val) { + iv_node_p = mxmlFindElement(msg_p->header_node_p, msg_p->header_node_p, IV_NODE_NAME, NULL, NULL, MXML_DESCEND); + if (!iv_node_p) { + ret_val = OMEMO_ERR_MALFORMED_XML; goto cleanup; } -- 2.29.2