@@ -76,6 +76,7 @@ static const struct nla_policy netlbl_mgmt_genl_policy[NLBL_MGMT_A_MAX + 1] = {
7676static int netlbl_mgmt_add_common (struct genl_info * info ,
7777 struct netlbl_audit * audit_info )
7878{
79+ void * pmap = NULL ;
7980 int ret_val = - EINVAL ;
8081 struct netlbl_domaddr_map * addrmap = NULL ;
8182 struct cipso_v4_doi * cipsov4 = NULL ;
@@ -175,6 +176,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
175176 ret_val = - ENOMEM ;
176177 goto add_free_addrmap ;
177178 }
179+ pmap = map ;
178180 map -> list .addr = addr -> s_addr & mask -> s_addr ;
179181 map -> list .mask = mask -> s_addr ;
180182 map -> list .valid = 1 ;
@@ -183,10 +185,8 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
183185 map -> def .cipso = cipsov4 ;
184186
185187 ret_val = netlbl_af4list_add (& map -> list , & addrmap -> list4 );
186- if (ret_val != 0 ) {
187- kfree (map );
188- goto add_free_addrmap ;
189- }
188+ if (ret_val != 0 )
189+ goto add_free_map ;
190190
191191 entry -> family = AF_INET ;
192192 entry -> def .type = NETLBL_NLTYPE_ADDRSELECT ;
@@ -223,6 +223,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
223223 ret_val = - ENOMEM ;
224224 goto add_free_addrmap ;
225225 }
226+ pmap = map ;
226227 map -> list .addr = * addr ;
227228 map -> list .addr .s6_addr32 [0 ] &= mask -> s6_addr32 [0 ];
228229 map -> list .addr .s6_addr32 [1 ] &= mask -> s6_addr32 [1 ];
@@ -235,10 +236,8 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
235236 map -> def .calipso = calipso ;
236237
237238 ret_val = netlbl_af6list_add (& map -> list , & addrmap -> list6 );
238- if (ret_val != 0 ) {
239- kfree (map );
240- goto add_free_addrmap ;
241- }
239+ if (ret_val != 0 )
240+ goto add_free_map ;
242241
243242 entry -> family = AF_INET6 ;
244243 entry -> def .type = NETLBL_NLTYPE_ADDRSELECT ;
@@ -248,10 +247,12 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
248247
249248 ret_val = netlbl_domhsh_add (entry , audit_info );
250249 if (ret_val != 0 )
251- goto add_free_addrmap ;
250+ goto add_free_map ;
252251
253252 return 0 ;
254253
254+ add_free_map :
255+ kfree (pmap );
255256add_free_addrmap :
256257 kfree (addrmap );
257258add_doi_put_def :
0 commit comments