Wireshark-bugs: [Wireshark-bugs] [Bug 11126] New: The GIOP dissector displays \000 at the end of

Date: Fri, 17 Apr 2015 12:40:01 +0000
Bug ID 11126
Summary The GIOP dissector displays \000 at the end of op strings
Product Wireshark
Version 1.12.4
Hardware x86
OS Windows 7
Status UNCONFIRMED
Severity Normal
Priority Low
Component Dissection engine (libwireshark)
Assignee [email protected]
Reporter [email protected]

Build Information:
Version 1.12.4 (v1.12.4-0-gb4861da from master-1.12)

Copyright 1998-2015 Gerald Combs <[email protected]> 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.23, with Cairo 1.10.2, with Pango 1.34.0, with
GLib 2.38.0, with WinPcap (4_1_3), with libz 1.2.5, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.2, without Python, with GnuTLS 3.2.15, with Gcrypt 1.6.2,
with
MIT Kerberos, with GeoIP, with PortAudio V19-devel (built Mar  4 2015), with
AirPcap.

Running on 64-bit Windows 7 Service Pack 1, build 7601, with WinPcap version
4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch
1_0_rel0b (20091008), GnuTLS 3.2.15, Gcrypt 1.6.2, without AirPcap.
Intel(R) Core(TM)2 Quad CPU    Q6700  @ 2.66GHz, with 8061MB of physical
memory.


Built using Microsoft Visual C++ 10.0 build 40219
--
GIOP request messages shown in the summary window have \000 displayed on the
end of the operation string. e.g.

18    13:24:49.520921    10.165.180.80    10.162.64.236    GIOP    GIOP 1.2
Request, s=164 id=175449: op=newPlayStatus\000

This string is generated in several places in packet-giop.c using code like..

  /* length of operation string and string */
  len = get_CDR_string(tvb, &operation, &offset, stream_is_big_endian,
GIOP_HEADER_SIZE);
  proto_tree_add_uint (request_tree, hf_giop_req_operation_len, tvb, offset - 4
- len, 4,  len);

  if ( len > 0)
  {
    col_append_fstr(pinfo->cinfo, COL_INFO, ": op=%s", format_text(operation,
(size_t)len));
    proto_tree_add_string(request_tree, hf_giop_req_operation, tvb, offset -
len, len, operation);
  }

It would appear that format_text is reading the NULL terminator at the end of
the string and converting it to '\000'. So either format_text is overrunning
the length of the string or the length being passed to it is too large or the
length being returned by get_CDR_string is too large.

Changing the calll to format_text to use len-1 fixes the problem, but may not
be the correct way to fix it.


You are receiving this mail because:
  • You are watching all bug changes.