aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2004-12-21 19:28:48 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2004-12-21 19:28:48 +0000
commitdea0ec440d5b4119797ac320bed16b7d2b6fa760 (patch)
tree3a8ae2be2cb82414b7301599cc8f8f5403eff751 /epan/dissectors
parent9399f6c4afda9dbf6ad8b033360f6a5a839f20bc (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.) git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12803 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-rtcp.h4
-rw-r--r--epan/dissectors/packet-rtp.h4
-rw-r--r--epan/dissectors/packet-t38.c2
-rw-r--r--epan/dissectors/packet-t38.h4
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;
};