diff options
author | Guy Harris <guy@alum.mit.edu> | 2004-12-21 19:28:48 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2004-12-21 19:28:48 +0000 |
commit | 9461951d501e4f0996787c07a6074e7e0b889167 (patch) | |
tree | 3a8ae2be2cb82414b7301599cc8f8f5403eff751 /epan | |
parent | 97755f83fc7a2901cac7a680d2eb90fd6fe88cdc (diff) |
Make the array for the "setup method" for RTP, RTCP, and T.38
conversations large enough to hold the maximum setup method size plus a
trailing '\0'. Make the maximum setup method size 7, so that when the
trailing '\0' is included the total array length is a power of 2. (The
longest string currently used is "Skinny", which fits in 7 characters).
This fixes problems in the RTP and RTCP dissectors similar to the one
found in the T.38 dissector.
Undo the previous change to packet-t38.c, as it's now safe to store in
method[MAX_T38_SETUP_METHOD_SIZE], because the array now has
MAX_T38_SETUP_METHOD_SIZE+1 characters.
(Should we use "strlcpy()", and supply our own "strlcpy()" if the system
and/or C library doesn't supply it? Its semantics are a bit cleaner
than those of the "strncpy()"/null-terminate idiom, perhaps making it
less likely that mistakes of this sort will be made.)
svn path=/trunk/; revision=12803
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-rtcp.h | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-rtp.h | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-t38.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-t38.h | 4 |
4 files changed, 7 insertions, 7 deletions
diff --git a/epan/dissectors/packet-rtcp.h b/epan/dissectors/packet-rtcp.h index 096d24b39a..3cddf39ae2 100644 --- a/epan/dissectors/packet-rtcp.h +++ b/epan/dissectors/packet-rtcp.h @@ -30,12 +30,12 @@ /* Info to save in RTCP conversation / packet-info. Note that this structure applies to the destination end of an RTP session */ -#define MAX_RTCP_SETUP_METHOD_SIZE 8 +#define MAX_RTCP_SETUP_METHOD_SIZE 7 struct _rtcp_conversation_info { /* Setup info is relevant to traffic whose dest is the conversation address */ guchar setup_method_set; - gchar setup_method[MAX_RTCP_SETUP_METHOD_SIZE]; + gchar setup_method[MAX_RTCP_SETUP_METHOD_SIZE + 1]; guint32 setup_frame_number; /* Info used for roundtrip calculations */ diff --git a/epan/dissectors/packet-rtp.h b/epan/dissectors/packet-rtp.h index 276f35a64c..b6cff9b5ff 100644 --- a/epan/dissectors/packet-rtp.h +++ b/epan/dissectors/packet-rtp.h @@ -52,10 +52,10 @@ struct _rtp_info { }; /* Info to save in RTP conversation / packet-info */ -#define MAX_RTP_SETUP_METHOD_SIZE 8 +#define MAX_RTP_SETUP_METHOD_SIZE 7 struct _rtp_conversation_info { - gchar method[MAX_RTP_SETUP_METHOD_SIZE]; + gchar method[MAX_RTP_SETUP_METHOD_SIZE + 1]; guint32 frame_number; }; diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c index 06327f5ce1..b7d05daa2a 100644 --- a/epan/dissectors/packet-t38.c +++ b/epan/dissectors/packet-t38.c @@ -233,7 +233,7 @@ void t38_add_address(packet_info *pinfo, * Update the conversation data. */ strncpy(p_conv_data->method, setup_method, MAX_T38_SETUP_METHOD_SIZE); - p_conv_data->method[MAX_T38_SETUP_METHOD_SIZE - 1] = '\0'; + p_conv_data->method[MAX_T38_SETUP_METHOD_SIZE] = '\0'; p_conv_data->frame_number = setup_frame_number; } diff --git a/epan/dissectors/packet-t38.h b/epan/dissectors/packet-t38.h index 2967edafc1..a972580d9f 100644 --- a/epan/dissectors/packet-t38.h +++ b/epan/dissectors/packet-t38.h @@ -26,10 +26,10 @@ */ /* Info to save in T38 conversation / packet-info */ -#define MAX_T38_SETUP_METHOD_SIZE 8 +#define MAX_T38_SETUP_METHOD_SIZE 7 struct _t38_conversation_info { - gchar method[MAX_T38_SETUP_METHOD_SIZE]; + gchar method[MAX_T38_SETUP_METHOD_SIZE + 1]; guint32 frame_number; }; |