Wireshark-bugs: [Wireshark-bugs] [Bug 6927] New: PDML XML file export corrupted in certain local
Date: Fri, 9 Mar 2012 03:10:10 -0800 (PST)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6927 Summary: PDML XML file export corrupted in certain locales Product: Wireshark Version: SVN Platform: x86 OS/Version: Windows XP Status: NEW Severity: Major Priority: Low Component: Wireshark AssignedTo: bugzilla-admin@xxxxxxxxxxxxx ReportedBy: colin.paton@xxxxxxxxxxxxx Created attachment 7984 --> https://bugs.wireshark.org/bugzilla/attachment.cgi?id=7984 Screenshot showing faulty XML Build Information: Version 1.7.1 (SVN Rev 41432 from /trunk) Copyright 1998-2012 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled (32-bit) with GTK+ 2.24.10, with Cairo 1.10.2, with Pango 1.29.4, with GLib 2.28.8, with WinPcap (4_1_2), with libz 1.2.5, without POSIX capabilities, with SMI 0.4.8, with c-ares 1.7.1, with Lua 5.1, without Python, with GnuTLS 2.10.3, with Gcrypt 1.4.6, with MIT Kerberos, with GeoIP, with PortAudio V19-devel (built Mar 8 2012), with AirPcap. Running on Windows XP Service Pack 3, build 2600, with WinPcap version 4.1.2 (packet.dll version 4.1.0.2001), based on libpcap version 1.0 branch 1_0_rel0b (20091008), GnuTLS 2.10.3, Gcrypt 1.4.6, without AirPcap. Built using Microsoft Visual C++ 9.0 build 30729 -- This seems to occur in many versions of Wireshark, and occurred in Korea in this instance. It still occurs in the SVN trunk source. The problem occurs as the packet.timestamp 'show' field isn't correctly XML escaped. This causes problems in locales which require unicode to encode their timezone description. The attached screenshot shows the XML output with the problem - the string appears as unterminated and won't parse. I think the problem occurs in this code: in trunk/print.c static void print_pdml_geninfo(proto_tree *tree, FILE *fh) { ... /* Print geninfo.timestamp */ fprintf(fh, " <field name=\"timestamp\" pos=\"0\" show=\"%s\" showname=\"Captured Time\" value=\"%d.%09d\" size=\"%u\"/>\n", abs_time_to_str(timestamp, ABSOLUTE_TIME_LOCAL, TRUE), (int) timestamp->secs, timestamp->nsecs, frame_finfo->length); abs_time_to_str can return a unicode string containing the timezone description. In the UK this is encoded as "GMT Standard Time" but is encoded using Korean characters in the faulty instance. epan/to_str.c::get_zonename() returns the unicode characters which get passed back via abs_time_to_str I think that the following patch may solve the problem but as yet have been unable to verify this: Index: print.c =================================================================== --- print.c (revision 41432) +++ print.c (working copy) @@ -585,11 +585,14 @@ " <field name=\"caplen\" pos=\"0\" show=\"%u\" showname=\"Captured Length\" value=\"%x\" size=\"%u\"/>\n", caplen, caplen, frame_finfo->length); - /* Print geninfo.timestamp */ + /* Print geninfo.timestamp */ fprintf(fh, -" <field name=\"timestamp\" pos=\"0\" show=\"%s\" showname=\"Captured Time\" value=\"%d.%09d\" size=\"%u\"/>\n", - abs_time_to_str(timestamp, ABSOLUTE_TIME_LOCAL, TRUE), (int) timestamp->secs, timestamp->nsecs, frame_finfo->length); +" <field name=\"timestamp\" pos=\"0\" show=\""); + print_escaped_xml(fh,abs_time_to_str(timestamp, ABSOLUTE_TIME_LOCAL, TRUE)); + fprintf(fh,"\" showname=\"Captured Time\" value=\"%d.%09d\" size=\"%u\"/>\n", + (int) timestamp->secs, timestamp->nsecs, frame_finfo->length); + /* Print geninfo end */ fprintf(fh, " </proto>\n"); -- Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching all bug changes.
- Prev by Date: [Wireshark-bugs] [Bug 6926] VoIP Calls Graph Analysis: Elements not sorted by Time
- Next by Date: [Wireshark-bugs] [Bug 6718] Wiretap API needs to handle pcap-NG ISB blocks
- Previous by thread: [Wireshark-bugs] [Bug 6926] VoIP Calls Graph Analysis: Elements not sorted by Time
- Next by thread: [Wireshark-bugs] Autoscroll turns off in Wireshark 1.6.5 when window is maximized
- Index(es):