Don't free the metadata before writing it to metadata file

We used to sometimes free the generic metadata (passed in through
rtpengine commands) before writing it to disk. Then we were writing
blank metadata to our metadata files. We fixed the ordering of
our `free` operations.
pull/245/head
Dylan Mikus 10 years ago committed by Eric Green
parent 74999abb76
commit 844abeec7d

@ -2220,10 +2220,9 @@ void call_destroy(struct call *c) {
if (c->recording != NULL) {
recording_finish_file(c->recording);
free(c->recording->metadata);
meta_finish_file(c);
g_slice_free1(sizeof(*(c->recording)), c->recording);
}
meta_finish_file(c);
g_slice_free1(sizeof(*(c->recording)), c->recording);
rwlock_unlock_w(&c->master_lock);

@ -698,7 +698,9 @@ static const char *call_offer_answer_ng(bencode_item_t *input, struct callmaster
}
bencode_dictionary_get_str(input, "metadata", &metadata);
if (metadata.len > 0) {
free(call->recording->metadata);
if (call->recording->metadata != NULL) {
free(call->recording->metadata);
}
call->recording->metadata = str_dup(&metadata);
}
} else {

@ -151,6 +151,7 @@ int meta_finish_file(struct call *call) {
// Print metadata
fprintf(recording->meta_fp, "\n%s\n", recording->metadata->s);
free(recording->metadata);
fclose(recording->meta_fp);
// Get the filename (in between its directory and the file extension)

Loading…
Cancel
Save