X,
> I have a query related to the stat_client. Its query is related to
> client/stat_client.c, part of shared library vppapiclient.
>
> In src/vpp-api/client/stat_client.c (master branch):
>
> stat_segment_data_t *res = 0;
> ==> LINE 1
> ...
> ...
> for (i = 0; i < vec_len (stats); i++)
> {
> /* Collect counter */
> ep = vec_elt_at_index (sm->directory_vector, stats[i]);
> vec_add1 (res, copy_data (ep, ~0, 0, sm));
> ==> LINE 2
> }
>
> if (stat_segment_access_end (&sa, sm))
> ==> LINE 3
> return res;
> fprintf (stderr, "Epoch changed while reading, invalid results\n");
> // TODO increase counter
> return 0;
>
> in LINE 3 , if the condition is False (epoch changed), then we return 0
> in that case, in LINE 2 'res' might have already allocated memory and this
> memory no longer get free'd.
>
> Is this understanding correct?
>
> If that case, this may trigger memory leak in vpp_prometheus_export(uses
> libvppapiclient), as it cannot get hold of the allocated memory(res) handle
> to free.Yes. Thanks for spotting this. Would you mind submitting a patch? Best regards, Ole
signature.asc
Description: Message signed with OpenPGP
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19838): https://lists.fd.io/g/vpp-dev/message/19838 Mute This Topic: https://lists.fd.io/mt/84335081/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
