On 8/9/2024 8:51 AM, Amery Hung wrote: > btf_parse_kptr() and btf_record_free() do btf_get() and btf_put() > respectively when working on btf_record in program and map if there are > kptr fields. If the kptr is from program BTF, since both callers has > already tracked the life cycle of program BTF, it is safe to remove the > btf_get() and btf_put(). > > This change prevents memory leak of program BTF later when we start > searching for kptr fields when building btf_record for program. It can > happen when the btf fd is closed. The btf_put() corresponding to the > btf_get() in btf_parse_kptr() was supposed to be called by > btf_record_free() in btf_free_struct_meta_tab() in btf_free(). However, > it will never happen since the invocation of btf_free() depends on the > refcount of the btf to become 0 in the first place. > > Signed-off-by: Amery Hung <amery.hung@xxxxxxxxxxxxx> Acked-by: Hou Tao <houtao1@xxxxxxxxxx>