Browse Source

avp: free allocated variable in case of error

Daniel-Constantin Mierla 6 years ago
parent
commit
5a18155c0f
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/modules/avp/avp.c

+ 3 - 1
src/modules/avp/avp.c

@@ -1380,7 +1380,7 @@ static int attr_hdr_body2attrs2(struct sip_msg* msg, char* header_, char* prefix
 static int attr_hdr_body2attrs_fixup(void **param, int param_no)
 {
 	char *c, *params;
-	hdr_name_t *h;
+	hdr_name_t *h = NULL;
 	int n;
 	str *s;
 	if(param_no == 1) {
@@ -1427,6 +1427,7 @@ static int attr_hdr_body2attrs_fixup(void **param, int param_no)
 						LOG(L_ERR, "attr_hdr_body2attrs_fixup: bad field param "
 								"modifier near '%s'\n",
 								params);
+						pkg_free(h);
 						return E_CFG;
 				}
 				params++;
@@ -1434,6 +1435,7 @@ static int attr_hdr_body2attrs_fixup(void **param, int param_no)
 			if(!h->val_types) {
 				LOG(L_ERR, "attr_hdr_body2attrs_fixup: no field param modifier "
 						"specified\n");
+				pkg_free(h);
 				return E_CFG;
 			}
 		} else {