Even in that tree/version (which is from 9 years ago), packet-xml.c doesn't
call the function itself.  I don't see any out-of-tree commits to
packet-xml.c in the history of that tree. The only file that includes
packet-xml.h is packet-xmpp-utils.h (which is included by various XMPP
dissectors), but they didn't even exist in the repo/snapshot you pointed to.

Looking with 'git annotate',  the lines of these 3 functions were
re-formatted by Bill Meier in a cleanup change in 2011, and I'm not going
to dig further back than that.

I think I'd best just leave those 3 functions in, and will add them to an
exemption list in my script.  But this does show that investigating these
symbols can be time-consuming and inconclusive.

Martin


On Wed, Jan 27, 2021 at 1:46 PM Anders Broman <anders.bro...@ericsson.com>
wrote:

> Hi,
>
> Did some googling out of curiosity and found
> https://jelmer.uk/klaus/wireshark/blob/e738b556d72d4db5d7df85969c15117dedd0d063/epan/dissectors/packet-xml.c
>
> Search for “xml_get_attrib" So it seems it was part of packet-xml.c at
> some point so perhaps safe to remove…
>
> /Anders
>
>
>
> *From:* Wireshark-dev <wireshark-dev-boun...@wireshark.org> *On Behalf Of
> *Martin Mathieson via Wireshark-dev
> *Sent:* den 27 januari 2021 13:27
> *To:* Developer support list for Wireshark <wireshark-dev@wireshark.org>
> *Cc:* Martin Mathieson <martin.r.mathie...@googlemail.com>
> *Subject:* Re: [Wireshark-dev] Dissector functions and variables that
> could be static
>
>
>
> Hi João,
>
>
>
> I agree that every function / variable needs to be looked at carefully,
> but more so if they have WS_DLL_PUBLIC in a header file.
>
>
>
> I will reinstate the XML functions in my change.  Hopefully, in other
> places I will find clear comments saying that they are provided for calling
> from private code or plugins, etc.
>
>
>
> The few occasions I've added to debian/libwireshark0.symbols have been to
> unbreak the pipeline when linking between dissectors and GUI code.  My pdcp
> key-setting functions don't even appear there, but I don't build Windows
> plugins.
>
>
>
> Martin
>
>
>
> On Wed, Jan 27, 2021 at 11:48 AM João Valverde via Wireshark-dev <
> wireshark-dev@wireshark.org> wrote:
>
> Hi Martin,
>
> As you said some functions may only be used by third party plugins so
> indiscriminately removing every exported but not used function would be a
> bad policy. Even if they're not actually being used right now, who knows,
> they may be part of some public API for plugins, so for use as needed. The
> considerate way to remove them would be to have a deprecation period.
>
> Unfortunately debian symbols doesn't help here. It does not say anything
> interesting not already said by the static/exported C keywords,  because
> functions that may be internal, for example exported from epan to the
> wireshark GUI application (not intended to be part of a public API), must
> also be included in debian symbols.
>
> So really IMO the analysis must be done case by case for each function.
> And of course the risk of breaking someone elses plugin is always there,
> however small, so I think it needs to proceed with some caution.
>
> On 27/01/21 11:06, Martin Mathieson via Wireshark-dev wrote:
>
> My most recent MR (
> https://gitlab.com/wireshark/wireshark/-/merge_requests/1829), has come
> across some symbols that don't appear to be in used by our repo.
>
>
>
> dpkg-gensymbols: error: some symbols or patterns disappeared in the
> symbols file: see diff output below
>
> 4934 
> <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4934>dpkg-gensymbols:
> warning: debian/libwireshark0/DEBIAN/symbols doesn't match completely
> debian/libwireshark0.symbols
>
> 4935 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4935>---
> debian/libwireshark0.symbols (libwireshark0_3.5.0_amd64)
>
> 4936 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4936>+++
> dpkg-gensymbolsUhOwDI 2021-01-27 10:38:17.000000000 +0000
>
> 4937 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4937>@@
> -2124,7 +2124,7 @@
>
> 4938 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4938>
> wsp_vals_pdu_type_ext@Base 1.9.1
>
> 4939 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4939>
> wsp_vals_status_ext@Base 1.9.1
>
> 4940 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4940>
> xml_escape@Base 1.9.1
>
> 4941 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4941>-
> xml_get_attrib@Base 1.9.1
>
> 4942 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4942>-
> xml_get_cdata@Base 1.9.1
>
> 4943 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4943>-
> xml_get_tag@Base 1.9.1
>
> 4944 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4944>+#MISSING:
> 3.5.0# xml_get_attrib@Base 1.9.1
>
> 4945 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4945>+#MISSING:
> 3.5.0# xml_get_cdata@Base 1.9.1
>
> 4946 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4946>+#MISSING:
> 3.5.0# xml_get_tag@Base 1.9.1
>
> 4947 <https://gitlab.com/wireshark/wireshark/-/jobs/989357035#L4947>
> zbee_zcl_init_cluster@Base 2.5.2
>
>
>
> It may be possible that someone has a private dissector that uses these
> xml accessor functions to try to pick out some interesting fields.
>
>
>
> I am guessing that I should have my script read
> debian/libwireshark0.symbols to realise that these functions need to be
> non-static, even if there it can't find any actual references?
>
>
>
> Martin
>
>
>
>
>
>
>
> On Tue, Jan 26, 2021 at 7:59 PM Martin Mathieson <
> martin.r.mathie...@googlemail.com> wrote:
>
> I have done a bit more on this - I started picking off the ones at the end
> of the (alphabetical) list - 2nd one is
> https://gitlab.com/wireshark/wireshark/-/merge_requests/1817. Please feel
> free if anyone feels motivated to tackle some of the earlier ones.  The
> script is much tidier now, and also checks for references from the ui
> folder (this removed around 20 from the list), will take another pass
> through it before creating an MR with it.
>
>
>
> Sometimes I see that header files are being used as a way to untangle the
> order or functions, but just doing some static forward-declarations at the
> top of the C module would be better if they are not shared.  I am leery of
> deleting functions that are not being called, but if they've been that way
> for years they probably don't matter.
>
>
>
> Martin
>
>
>
>
>
>
>
> On Sun, Jan 24, 2021 at 11:06 PM Martin Mathieson <
> martin.r.mathie...@googlemail.com> wrote:
>
>
>
>
>
> On Sun, Jan 24, 2021 at 8:27 PM Jirka Novak <j.no...@netsystem.cz> wrote:
>
> Hi,
>
>   I checked the code I know:
>
> > epan/dissectors/packet-rtp-events.c (00000000000001a0 D>
> rtp_event_type_values_ext) is not referred to so could be static? (in>
> header)
> It is used in UI, outside of dissectors. Therefore it should be exported.
>
>
>
> Yes, I can have the script also check for references from the object files
> in ui to avoid reporting cases like this.
>
>
>
> > epan/dissectors/packet-rtp.c (00000000000006d0 T rtp_dyn_payload_remove)
> > is not referred to so could be static? (in header)
> > epan/dissectors/packet-rtp.c (0000000000000660 T
> > rtp_dyn_payload_replace) is not referred to so could be static? (in
> header)
>
>
>
> I think these 2 functions can be removed.
>
>
>
> > epan/dissectors/packet-rtps.c (0000000000000e20 D class_id_enum_names)
> > is not referred to so could be static?
>
>
>
> This variable is able to become static.
>
>
>
> That two functions are not used at all. Can we remove them?
>
>                                                 Best regards,
>
>                                                         Jirka Novak
>
>
>
> ___________________________________________________________________________
>
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org> 
> <wireshark-dev@wireshark.org>
>
> Archives:    https://www.wireshark.org/lists/wireshark-dev
>
> Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
>
>              mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe 
> <wireshark-dev-requ...@wireshark.org?subject=unsubscribe>
>
>
>
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    https://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-requ...@wireshark.org
> ?subject=unsubscribe
>
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to