diff --git a/daemon/sdp.c b/daemon/sdp.c index 174153f9b..3b2f6f1c6 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -2891,9 +2891,8 @@ int sdp_create(str *out, struct call_monologue *monologue, struct sdp_ng_flags * print_sdp_media_section(s, media, NULL, flags, rtp_ps_link, true, false); } - out->s = s->str; out->len = s->len; - g_string_free(s, FALSE); + out->s = g_string_free(s, FALSE); return 0; err: if (s) diff --git a/lib/str.h b/lib/str.h index 41c43152f..ccd0079a0 100644 --- a/lib/str.h +++ b/lib/str.h @@ -320,9 +320,8 @@ INLINE str *g_string_free_str(GString *gs) { assert(gs->len >= pl); assert(memcmp(gs->str, STR_MALLOC_PADDING, pl) == 0); ret = (void *) gs->str; - ret->s = gs->str + pl; ret->len = gs->len - pl; - g_string_free(gs, FALSE); + ret->s = g_string_free(gs, FALSE) + pl; return ret; } INLINE int str_memcmp(const str *s, void *m) {