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: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-