CFDP dissector doesn't handle "destination filename" only
Summary
When dissecting a metadata PDU that contains a destination filename but no source filename (i.e. source length has a value of 0), the dissector incorrectly dissects the metadata PDU as a TLV / file directive "Rename File" request.
Steps to reproduce
Create a Metadata PDU such that the source LV has one byte of value zero (indicating no source filename is present) and a destination whose value is specified (i.e. one byte representing the destination filename length followed by "n" bytes of the filename).
What is the current bug behavior?
The CFDP File Directive gets erroneously dissected as a "Filestore Request TLV" with an action code of 2 ("Rename File"). I believe this is due to the logic in packet-cfdp.c around line 1158 here: https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-cfdp.c#L1158
The statement checks whether the source filename is specified ("aux_byte >0" on line 1158) but does not allow for a case where the source is not specified BUT THE DESTINATION IS.
What is the expected correct behavior?
The metadata PDU should be dissected to show an empty/non-specified source filename followed by the correct destination filename.
Sample capture file
Due to program restrictions, I'm not able to include the PCAP file.
Build information
Version 4.0.0 (v4.0.0-0-g0cbe09cd796b).
Compiled (64-bit) using Microsoft Visual Studio 2022 (VC++ 14.32, build 31332),
with GLib 2.72.3, with PCRE2, with zlib 1.2.12, with Qt 6.2.3, with libpcap,
with Lua 5.2.4, with GnuTLS 3.6.3 and PKCS #11 support, with Gcrypt 1.10.1, with
Kerberos (MIT), with MaxMind, with nghttp2 1.46.0, with brotli, with LZ4, with
Zstandard, with Snappy, with libxml2 2.9.14, with libsmi 0.4.8, with
QtMultimedia, with automatic updates using WinSparkle 0.5.7, with AirPcap, with
SpeexDSP (using bundled resampler), with Minizip, with binary plugins.
Running on 64-bit Windows 10 (20H2), build 19042, with Intel(R) Core(TM)
i7-9850H CPU @ 2.60GHz (with SSE4.2), with 16166 MB of physical memory, with
GLib 2.72.3, with PCRE2 10.40 2022-04-14, with Qt 6.2.3, with Npcap version
1.71, based on libpcap version 1.10.2-PRE-GIT, with c-ares 1.18.1, with GnuTLS
3.6.3, with Gcrypt 1.10.1, with nghttp2 1.46.0, with brotli 1.0.9, with LZ4
1.9.3, with Zstandard 1.5.2, without AirPcap, with light display mode, without
HiDPI, with LC_TYPE=English_United States.utf8, binary plugins supported.