diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2012-04-03 04:03:19 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2012-04-03 04:03:19 +0000 |
commit | 4eb21a6cf9e932009b730ea3e9fc397274ab81fc (patch) | |
tree | 682c39cd43519937fd49ed26e2102e3ee7c45f4a | |
parent | 7995f3f5993aebfd8fbb442f2a2e2c78afafdfb6 (diff) |
Re #1453: fixed memory leak in pjmedia_vid_codec_mgr_set_default_param() caused by unreleased old pool when the new codec param is not NULL (thanks Faba Aa for the report).
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4008 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjmedia/src/pjmedia/vid_codec.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia/vid_codec.c b/pjmedia/src/pjmedia/vid_codec.c index f46033e2..93690a29 100644 --- a/pjmedia/src/pjmedia/vid_codec.c +++ b/pjmedia/src/pjmedia/vid_codec.c @@ -722,12 +722,20 @@ PJ_DEF(pj_status_t) pjmedia_vid_codec_mgr_set_default_param( /* Update codec default param */ p->param = pjmedia_vid_codec_param_clone(pool, param); - if (!p) + if (!p->param) return PJ_EINVAL; + codec_desc->def_param = p; pj_mutex_unlock(mgr->mutex); + /* Release old pool at the very end, as application tends to apply changes + * to the existing/old codec param fetched using + * pjmedia_vid_codec_mgr_get_default_param() which doesn't do deep clone. + */ + if (old_pool) + pj_pool_release(old_pool); + return PJ_SUCCESS; } |