diff --git a/CHANGELOG.md b/CHANGELOG.md index b7cd0c84f..122829877 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ **Fixes**: - Remove spurious decref in `sentry_capture_user_feedback()` ([#1510](https://github.com/getsentry/sentry-native/pull/1510)) +- Prevent double-decref of event in envelope add functions ([#1511](https://github.com/getsentry/sentry-native/pull/1511)) ## 0.12.6 diff --git a/src/sentry_envelope.c b/src/sentry_envelope.c index fc81cea24..3e8225284 100644 --- a/src/sentry_envelope.c +++ b/src/sentry_envelope.c @@ -296,12 +296,12 @@ sentry__envelope_add_event(sentry_envelope_t *envelope, sentry_value_t event) sentry_uuid_t event_id; sentry__ensure_event_id(event, &event_id); - item->event = event; sentry__jsonwriter_write_value(jw, event); item->payload = sentry__jsonwriter_into_string(jw, &item->payload_len); if (!item->payload) { return NULL; } + item->event = event; sentry__envelope_item_set_header( item, "type", sentry_value_new_string("event")); @@ -381,12 +381,12 @@ sentry__envelope_add_transaction( sentry_uuid_t event_id; sentry__ensure_event_id(transaction, &event_id); - item->event = transaction; sentry__jsonwriter_write_value(jw, transaction); item->payload = sentry__jsonwriter_into_string(jw, &item->payload_len); if (!item->payload) { return NULL; } + item->event = transaction; sentry__envelope_item_set_header( item, "type", sentry_value_new_string("transaction"));