diff --git a/src/stanza.c b/src/stanza.c index 24e6fe8..9593cc7 100644 --- a/src/stanza.c +++ b/src/stanza.c @@ -1640,8 +1640,11 @@ static void _stub_stream_end(char *name, void *userdata) static void _stream_stanza(xmpp_stanza_t *stanza, void *userdata) { - stanza = xmpp_stanza_clone(stanza); - *(xmpp_stanza_t **)userdata = stanza; + xmpp_stanza_t **dest = userdata; + if (*dest == NULL) { + stanza = xmpp_stanza_clone(stanza); + *dest = stanza; + } } /** Create a stanza object from the string. diff --git a/tests/test_stanza.c b/tests/test_stanza.c index f8a758e..219f4fc 100644 --- a/tests/test_stanza.c +++ b/tests/test_stanza.c @@ -99,7 +99,7 @@ static void test_stanza_from_string(xmpp_ctx_t *ctx) size_t buflen; int ret; - static const char *str = + const char *str = "