From: Ondrej Zajicek Date: Wed, 4 Oct 2023 17:45:00 +0000 (+0200) Subject: BGP: Custom attribute definitions should use cfg_alloc(), not malloc() X-Git-Tag: v2.14~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab47c2ae466f785212f0519388417ebb31b2cf24;p=thirdparty%2Fbird.git BGP: Custom attribute definitions should use cfg_alloc(), not malloc() Otherwise we would get memory leaks. --- diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y index e7a2f5cb0..4e7d0329d 100644 --- a/proto/bgp/config.Y +++ b/proto/bgp/config.Y @@ -369,8 +369,8 @@ custom_attr: ATTRIBUTE BGP NUM type symbol ';' { if($3 > 255 || $3 < 1) cf_error("Invalid attribute number. (Given %i, must be 1-255.)", $3); if($4 != T_BYTESTRING) - cf_error("Attribute type must be bytestring, not %s.", f_type_name($4)); - struct f_dynamic_attr* a = (struct f_dynamic_attr*) malloc(sizeof(struct f_dynamic_attr)); + cf_error("Attribute type must be bytestring, not %s", f_type_name($4)); + struct f_dynamic_attr *a = cfg_alloc(sizeof(struct f_dynamic_attr)); *a = f_new_dynamic_attr(f_type_attr($4), T_BYTESTRING, EA_CODE(PROTOCOL_BGP, $3)); a->flags = BAF_TRANSITIVE | BAF_OPTIONAL; cf_define_symbol(new_config, $5, SYM_ATTRIBUTE, attribute, a);