diff --git a/src/modules/htable/ht_var.c b/src/modules/htable/ht_var.c index 36cceb4fb95..522811da58b 100644 --- a/src/modules/htable/ht_var.c +++ b/src/modules/htable/ht_var.c @@ -48,17 +48,17 @@ int pv_get_ht_cell(struct sip_msg *msg, pv_param_t *param, return -1; } htc = ht_cell_pkg_copy(hpv->ht, &htname, _htc_local); + if(_htc_local!=htc) + { + ht_cell_pkg_free(_htc_local); + _htc_local=htc; + } if(htc==NULL) { if(hpv->ht->flags==PV_VAL_INT) return pv_get_sintval(msg, param, res, hpv->ht->initval.n); return pv_get_null(msg, param, res); } - if(_htc_local!=htc) - { - ht_cell_pkg_free(_htc_local); - _htc_local=htc; - } if(htc->flags&AVP_VAL_STR) return pv_get_strval(msg, param, res, &htc->value.s); @@ -326,15 +326,15 @@ int pv_get_ht_add(struct sip_msg *msg, pv_param_t *param, return -1; } htc = ht_cell_value_add(hpv->ht, &htname, val, 1, _htc_local); - if(htc==NULL) - { - return pv_get_null(msg, param, res); - } if(_htc_local!=htc) { ht_cell_pkg_free(_htc_local); _htc_local=htc; } + if(htc==NULL) + { + return pv_get_null(msg, param, res); + } if(htc->flags&AVP_VAL_STR) return pv_get_null(msg, param, res);