Ethereal-cvs: [Ethereal-cvs] cvs commit: ethereal packet-aim.c packet-dcerpc.c packet-fix.c pa

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <guy@xxxxxxxxxxxxxxxxx>
Date: Thu, 12 Jun 2003 03:33:30 -0500 (CDT)
guy         2003/06/12 03:33:30 CDT

  Modified files:
    .                    packet-aim.c packet-dcerpc.c packet-fix.c 
                         packet-ppp.c packet-quake.c packet-sdp.c 
                         packet-sip.c packet-smb-browse.c 
                         packet-smb-common.c packet-smb-logon.c 
                         packet-smb.c packet-smpp.c 
                         packet-telnet.c 
  Log:
  Add new routines:
  
  	tvb_get_string() - takes a tvbuff, an offset, and a length as
  	arguments, allocates a buffer big enough to hold a string with
  	the specified number of bytes plus an added null terminator
  	(i.e., length+1), copies the specified number of bytes from the
  	tvbuff, at the specified offset, to that buffer and puts in a
  	null terminator, and returns a pointer to that buffer (or throws
  	an exception before allocating the buffer if that many bytes
  	aren't available in the tvbuff);
  
  	tvb_get_stringz() - takes a tvbuff, an offset, and a pointer to
  	a "gint" as arguments, gets the size of the null-terminated
  	string starting at the specified offset in the tvbuff (throwing
  	an exception if the null terminator isn't found), allocates a
  	buffer big enough to hold that string, copies the string to that
  	buffer, and returns a pointer to that buffer and stores the
  	length of the string (including the terminating null) in the
  	variable pointed to by the "gint" pointer.
  
  Replace many pieces of code allocating a buffer and copying a string
  with calls to "tvb_get_string()" (for one thing, "tvb_get_string()"
  doesn't require you to remember that the argument to
  "tvb_get_nstringz0()" is the size of the buffer into which you're
  copying the string, which might be the length of the string to be copied
  *plus 1*).
  
  Don't use fixed-length buffers for null-terminated strings (even if the
  code that generates those packets has a #define to limit the length of
  the string).  Use "tvb_get_stringz()", instead.
  
  In some cases where a value is fetched but is only used to pass an
  argument to a "proto_tree_add_XXX" routine, use "proto_tree_add_item()"
  instead.
  
  Revision  Changes    Path
  1.30      +2 -3      ethereal/packet-aim.c
  1.129     +4 -7      ethereal/packet-dcerpc.c
  1.6       +5 -7      ethereal/packet-fix.c
  1.112     +46 -20    ethereal/packet-ppp.c
  1.30      +99 -152   ethereal/packet-quake.c
  1.34      +5 -8      ethereal/packet-sdp.c
  1.39      +3 -7      ethereal/packet-sip.c
  1.31      +4 -10     ethereal/packet-smb-browse.c
  1.18      +5 -15     ethereal/packet-smb-common.c
  1.34      +5 -6      ethereal/packet-smb-logon.c
  1.353     +2 -3      ethereal/packet-smb.c
  1.12      +6 -6      ethereal/packet-smpp.c
  1.41      +9 -10     ethereal/packet-telnet.c