aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2008-03-01 17:23:39 +0000
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2008-03-01 17:23:39 +0000
commit994d316315868546fa15319311187414c3b4d4f9 (patch)
tree75b52bc6b03f8df488b8acbe97063df9d6d8b02d /epan/dissectors
parentbb42d82ed760cb028118fca73c79f37e1cbc00b6 (diff)
Rewrote to use g_strlcpy and g_strlcat.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@24525 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-afs.c15
-rw-r--r--epan/dissectors/packet-ansi_tcap.c13
-rw-r--r--epan/dissectors/packet-bthci_cmd.c22
-rw-r--r--epan/dissectors/packet-bthci_evt.c22
-rw-r--r--epan/dissectors/packet-clnp.c7
-rw-r--r--epan/dissectors/packet-cpfi.c5
-rw-r--r--epan/dissectors/packet-h245.c17
-rw-r--r--epan/dissectors/packet-h245.h2
-rw-r--r--epan/dissectors/packet-h264.c39
-rw-r--r--epan/dissectors/packet-h450-ros.c8
-rw-r--r--epan/dissectors/packet-icmpv6.c3
-rw-r--r--epan/dissectors/packet-ieee80211.c12
-rw-r--r--epan/dissectors/packet-ip.c15
-rw-r--r--epan/dissectors/packet-mgcp.c8
-rw-r--r--epan/dissectors/packet-msrp.c5
-rw-r--r--epan/dissectors/packet-nbns.c35
-rw-r--r--epan/dissectors/packet-ncp-sss.c70
-rw-r--r--epan/dissectors/packet-nfs.c13
-rw-r--r--epan/dissectors/packet-per.c45
-rw-r--r--epan/dissectors/packet-q932-ros.c24
-rw-r--r--epan/dissectors/packet-quakeworld.c6
-rw-r--r--epan/dissectors/packet-rdt.c4
-rw-r--r--epan/dissectors/packet-rmi.c5
-rw-r--r--epan/dissectors/packet-rtcp.c8
-rw-r--r--epan/dissectors/packet-rtp.c4
-rw-r--r--epan/dissectors/packet-sccp.c9
-rw-r--r--epan/dissectors/packet-sip.c17
-rw-r--r--epan/dissectors/packet-smb-common.c3
-rw-r--r--epan/dissectors/packet-smb-sidsnooping.c3
-rw-r--r--epan/dissectors/packet-smb.c6
-rw-r--r--epan/dissectors/packet-snmp.c2
-rw-r--r--epan/dissectors/packet-ssl-utils.c8
-rw-r--r--epan/dissectors/packet-t38.c15
-rw-r--r--epan/dissectors/packet-tcap.c53
-rw-r--r--epan/dissectors/packet-tcap.h2
-rw-r--r--epan/dissectors/packet-telnet.c10
-rw-r--r--epan/dissectors/packet-tpncp.c7
37 files changed, 269 insertions, 273 deletions
diff --git a/epan/dissectors/packet-afs.c b/epan/dissectors/packet-afs.c
index 3a735db1a5..ea0eb3825f 100644
--- a/epan/dissectors/packet-afs.c
+++ b/epan/dissectors/packet-afs.c
@@ -43,6 +43,7 @@
#include <epan/conversation.h>
#include <epan/addr_resolv.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
#include "packet-rx.h"
#include "packet-afs.h"
@@ -649,13 +650,13 @@ static gint ett_afs_vldb_flags = -1;
int acllen; \
char tmp[10]; \
tmp[0] = 0; \
- if ( acl & PRSFS_READ ) strncat(tmp, "r", 2); \
- if ( acl & PRSFS_LOOKUP ) strncat(tmp, "l", 2); \
- if ( acl & PRSFS_INSERT ) strncat(tmp, "i", 2); \
- if ( acl & PRSFS_DELETE ) strncat(tmp, "d", 2); \
- if ( acl & PRSFS_WRITE ) strncat(tmp, "w", 2); \
- if ( acl & PRSFS_LOCK ) strncat(tmp, "k", 2); \
- if ( acl & PRSFS_ADMINISTER ) strncat(tmp, "a", 2); \
+ if ( acl & PRSFS_READ ) g_strlcat(tmp, "r", 10); \
+ if ( acl & PRSFS_LOOKUP ) g_strlcat(tmp, "l", 10); \
+ if ( acl & PRSFS_INSERT ) g_strlcat(tmp, "i", 10); \
+ if ( acl & PRSFS_DELETE ) g_strlcat(tmp, "d", 10); \
+ if ( acl & PRSFS_WRITE ) g_strlcat(tmp, "w", 10); \
+ if ( acl & PRSFS_LOCK ) g_strlcat(tmp, "k", 10); \
+ if ( acl & PRSFS_ADMINISTER ) g_strlcat(tmp, "a", 10); \
ti = proto_tree_add_text(tree, tvb, offset, bytes, \
"ACL: %s %s%s", \
who, tmp, positive ? "" : " (negative)"); \
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index 853c46bad6..6e91f1e47a 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -43,6 +43,7 @@
#include <epan/oids.h>
#include <epan/emem.h>
#include <epan/asn1.h>
+#include <epan/strutil.h>
#include <stdio.h>
#include <string.h>
@@ -120,7 +121,7 @@ static int hf_ansi_tcap_paramSequence = -1; /* T_paramSequence */
static int hf_ansi_tcap_paramSet = -1; /* T_paramSet */
/*--- End of included file: packet-ansi_tcap-hf.c ---*/
-#line 60 "packet-ansi_tcap-template.c"
+#line 61 "packet-ansi_tcap-template.c"
/* Initialize the subtree pointers */
static gint ett_tcap = -1;
@@ -163,7 +164,7 @@ static gint ett_ansi_tcap_T_paramSequence = -1;
static gint ett_ansi_tcap_T_paramSet = -1;
/*--- End of included file: packet-ansi_tcap-ett.c ---*/
-#line 76 "packet-ansi_tcap-template.c"
+#line 77 "packet-ansi_tcap-template.c"
#define MAX_SSN 254
@@ -1319,7 +1320,7 @@ dissect_ansi_tcap_PackageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
/*--- End of included file: packet-ansi_tcap-fn.c ---*/
-#line 320 "packet-ansi_tcap-template.c"
+#line 321 "packet-ansi_tcap-template.c"
@@ -1380,7 +1381,7 @@ dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
if ( p_tcap_context && cur_oid && !p_tcap_context->oid_present ) {
/* Save the application context and the sub dissector */
ber_oid_dissector_table = find_dissector_table("ber.oid");
- strncpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
+ g_strlcpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
if ( (subdissector_handle = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
p_tcap_context->subdissector_handle=subdissector_handle;
p_tcap_context->oid_present=TRUE;
@@ -1652,7 +1653,7 @@ proto_register_ansi_tcap(void)
"ansi_tcap.T_paramSet", HFILL }},
/*--- End of included file: packet-ansi_tcap-hfarr.c ---*/
-#line 444 "packet-ansi_tcap-template.c"
+#line 445 "packet-ansi_tcap-template.c"
};
/* Setup protocol subtree array */
@@ -1689,7 +1690,7 @@ proto_register_ansi_tcap(void)
&ett_ansi_tcap_T_paramSet,
/*--- End of included file: packet-ansi_tcap-ettarr.c ---*/
-#line 454 "packet-ansi_tcap-template.c"
+#line 455 "packet-ansi_tcap-template.c"
};
/*static enum_val_t tcap_options[] = {
diff --git a/epan/dissectors/packet-bthci_cmd.c b/epan/dissectors/packet-bthci_cmd.c
index 246c390cc6..c090c5ad52 100644
--- a/epan/dissectors/packet-bthci_cmd.c
+++ b/epan/dissectors/packet-bthci_cmd.c
@@ -38,6 +38,7 @@
#include <string.h>
#include <epan/packet.h>
+#include <epan/strutil.h>
#include <etypes.h>
#include <packet-hci_h4.h>
#include <addr_resolv.h>
@@ -834,20 +835,19 @@ dissect_bthci_cmd_cod(int type, tvbuff_t *tvb, int offset, packet_info *pinfo _U
buf[0] = '\0';
proto_item_append_text(item, " (%s - services:", val_to_str(cod1 & 0x1f, bthci_cmd_major_dev_class_vals, "???"));
- if (cod2 & 0x80) strncat(buf, " Information,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x40) strncat(buf, " Telephony,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x20) strncat(buf, " Audio,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x10) strncat(buf, " Object transfer,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x08) strncat(buf, " Capturing,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x04) strncat(buf, " Rendering,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x02) strncat(buf, " Networking,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x01) strncat(buf, " Positioning,", sizeof(buf) - strlen(buf));
- if (cod1 & 0x20) strncat(buf, " Limited discoverable mode,", sizeof(buf) - strlen(buf));
+ if (cod2 & 0x80) g_strlcat(buf, " Information,", sizeof(buf));
+ if (cod2 & 0x40) g_strlcat(buf, " Telephony,", sizeof(buf));
+ if (cod2 & 0x20) g_strlcat(buf, " Audio,", sizeof(buf));
+ if (cod2 & 0x10) g_strlcat(buf, " Object transfer,", sizeof(buf));
+ if (cod2 & 0x08) g_strlcat(buf, " Capturing,", sizeof(buf));
+ if (cod2 & 0x04) g_strlcat(buf, " Rendering,", sizeof(buf));
+ if (cod2 & 0x02) g_strlcat(buf, " Networking,", sizeof(buf));
+ if (cod2 & 0x01) g_strlcat(buf, " Positioning,", sizeof(buf));
+ if (cod1 & 0x20) g_strlcat(buf, " Limited discoverable mode,", sizeof(buf));
buf[strlen(buf)-1] = '\0'; /* skip last comma */
- strncat(buf, ")", sizeof(buf) - strlen(buf));
- buf[128-1] = '\0';
+ g_strlcat(buf, ")", sizeof(buf));
proto_item_append_text(item, buf);
}
else
diff --git a/epan/dissectors/packet-bthci_evt.c b/epan/dissectors/packet-bthci_evt.c
index ef9f70508f..b459061876 100644
--- a/epan/dissectors/packet-bthci_evt.c
+++ b/epan/dissectors/packet-bthci_evt.c
@@ -38,6 +38,7 @@
#include <string.h>
#include <epan/packet.h>
+#include <epan/strutil.h>
#include <etypes.h>
#include <packet-hci_h4.h>
#include <addr_resolv.h>
@@ -640,20 +641,19 @@ dissect_bthci_evt_cod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_t
buf[0] = 0;
proto_item_append_text(item, " (%s - services:", val_to_str(cod1 & 0x1f, bthci_cmd_major_dev_class_vals, "???"));
- if (cod2 & 0x80) strncat(buf, " Information,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x40) strncat(buf, " Telephony,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x20) strncat(buf, " Audio,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x10) strncat(buf, " Object transfer,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x08) strncat(buf, " Capturing,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x04) strncat(buf, " Rendering,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x02) strncat(buf, " Networking,", sizeof(buf) - strlen(buf));
- if (cod2 & 0x01) strncat(buf, " Positioning,", sizeof(buf) - strlen(buf));
- if (cod1 & 0x20) strncat(buf, " Limited discoverable mode,", sizeof(buf) - strlen(buf));
+ if (cod2 & 0x80) g_strlcat(buf, " Information,", sizeof(buf));
+ if (cod2 & 0x40) g_strlcat(buf, " Telephony,", sizeof(buf));
+ if (cod2 & 0x20) g_strlcat(buf, " Audio,", sizeof(buf));
+ if (cod2 & 0x10) g_strlcat(buf, " Object transfer,", sizeof(buf));
+ if (cod2 & 0x08) g_strlcat(buf, " Capturing,", sizeof(buf));
+ if (cod2 & 0x04) g_strlcat(buf, " Rendering,", sizeof(buf));
+ if (cod2 & 0x02) g_strlcat(buf, " Networking,", sizeof(buf));
+ if (cod2 & 0x01) g_strlcat(buf, " Positioning,", sizeof(buf));
+ if (cod1 & 0x20) g_strlcat(buf, " Limited discoverable mode,", sizeof(buf));
buf[strlen(buf)-1] = 0; /* skip last comma */
- strncat(buf, ")", sizeof(buf) - strlen(buf));
- buf[128-1] = '\0';
+ g_strlcat(buf, ")", sizeof(buf));
proto_item_append_text(item, buf);
}
else
diff --git a/epan/dissectors/packet-clnp.c b/epan/dissectors/packet-clnp.c
index 18cfc2ec50..8e7c43b913 100644
--- a/epan/dissectors/packet-clnp.c
+++ b/epan/dissectors/packet-clnp.c
@@ -43,6 +43,7 @@
#include <epan/nlpid.h>
#include <epan/ipproto.h>
#include <epan/expert.h>
+#include <epan/strutil.h>
/* protocols and fields */
@@ -1905,11 +1906,11 @@ static void dissect_clnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
"Unknown (0x%02x)");
flag_string[0] = '\0';
if (cnf_type & CNF_SEG_OK)
- strncat(flag_string, "S ", 3);
+ g_strlcat(flag_string, "S ", 7);
if (cnf_type & CNF_MORE_SEGS)
- strncat(flag_string, "M ", 3);
+ g_strlcat(flag_string, "M ", 7);
if (cnf_type & CNF_ERR_OK)
- strncat(flag_string, "E ", 3);
+ g_strlcat(flag_string, "E ", 7);
if (tree) {
ti = proto_tree_add_uint_format(clnp_tree, hf_clnp_type, tvb, P_CLNP_TYPE, 1,
cnf_type,
diff --git a/epan/dissectors/packet-cpfi.c b/epan/dissectors/packet-cpfi.c
index 562526ad2c..633ca6ac23 100644
--- a/epan/dissectors/packet-cpfi.c
+++ b/epan/dissectors/packet-cpfi.c
@@ -39,6 +39,7 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/strutil.h>
void proto_reg_handoff_cpfi(void);
@@ -182,7 +183,7 @@ dissect_cpfi_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tda = (word1 & CPFI_DEST_MASK) >> CPFI_DEST_SHIFT;
if ( tda >= FIRST_TIO_CARD_ADDRESS )
{
- strncpy(src_str, " CPFI", sizeof(src_str));
+ g_strlcpy(src_str, " CPFI", sizeof(src_str));
src = 0; /* Make it smallest */
}
else
@@ -204,7 +205,7 @@ dissect_cpfi_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tda = (word1 & CPFI_SOURCE_MASK) >> CPFI_SOURCE_SHIFT;
if ( tda >= FIRST_TIO_CARD_ADDRESS )
{
- strncpy(dst_str, " CPFI", sizeof(dst_str));
+ g_strlcpy(dst_str, " CPFI", sizeof(dst_str));
dst = 0; /* Make it smallest */
}
else
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index b8b18ff9ad..80daa05bb0 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h245.c */
-/* ../../tools/asn2wrs.py -e -p h245 -c h245.cnf -s packet-h245-template MULTIMEDIA-SYSTEM-CONTROL.asn */
+/* ../../tools/asn2wrs.py -e -p h245 -c ./h245.cnf -s ./packet-h245-template -D . MULTIMEDIA-SYSTEM-CONTROL.asn */
/* Input file: packet-h245-template.c */
@@ -47,6 +47,7 @@
#include <glib.h>
#include <epan/packet.h>
#include <epan/conversation.h>
+#include <epan/strutil.h>
#include <stdio.h>
#include <string.h>
@@ -216,7 +217,7 @@ typedef enum _IndicationMessage_enum {
} IndicationMessage_enum;
/*--- End of included file: packet-h245-val.h ---*/
-#line 89 "packet-h245-template.c"
+#line 90 "packet-h245-template.c"
static const value_string h245_RequestMessage_short_vals[] = {
{ RequestMessage_nonStandard , "NSM" },
@@ -1900,7 +1901,7 @@ static int hf_h245_encrypted = -1; /* OCTET_STRING */
static int hf_h245_encryptedAlphanumeric = -1; /* EncryptedAlphanumeric */
/*--- End of included file: packet-h245-hf.c ---*/
-#line 373 "packet-h245-template.c"
+#line 374 "packet-h245-template.c"
/* Initialize the subtree pointers */
static int ett_h245 = -1;
@@ -2401,7 +2402,7 @@ static gint ett_h245_FlowControlIndication = -1;
static gint ett_h245_MobileMultilinkReconfigurationIndication = -1;
/*--- End of included file: packet-h245-ett.c ---*/
-#line 378 "packet-h245-template.c"
+#line 379 "packet-h245-template.c"
/* Forward declarations */
static int dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -14355,7 +14356,7 @@ static void dissect_OpenLogicalChannel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-h245-fn.c ---*/
-#line 387 "packet-h245-template.c"
+#line 388 "packet-h245-template.c"
static void
dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
@@ -14417,7 +14418,7 @@ dissect_h245_FastStart_OLC(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
h245_pi->msg_type = H245_OpenLogChn;
if (codec_str && codec_type){
- strncpy(codec_str, codec_type, 50);
+ g_strlcpy(codec_str, codec_type, 50);
}
}
@@ -20018,7 +20019,7 @@ void proto_register_h245(void) {
"h245.EncryptedAlphanumeric", HFILL }},
/*--- End of included file: packet-h245-hfarr.c ---*/
-#line 465 "packet-h245-template.c"
+#line 466 "packet-h245-template.c"
};
/* List of subtrees */
@@ -20521,7 +20522,7 @@ void proto_register_h245(void) {
&ett_h245_MobileMultilinkReconfigurationIndication,
/*--- End of included file: packet-h245-ettarr.c ---*/
-#line 472 "packet-h245-template.c"
+#line 473 "packet-h245-template.c"
};
module_t *h245_module;
diff --git a/epan/dissectors/packet-h245.h b/epan/dissectors/packet-h245.h
index 4376792099..386f1d0775 100644
--- a/epan/dissectors/packet-h245.h
+++ b/epan/dissectors/packet-h245.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-h245.h */
-/* ../../tools/asn2wrs.py -e -p h245 -c h245.cnf -s packet-h245-template MULTIMEDIA-SYSTEM-CONTROL.asn */
+/* ../../tools/asn2wrs.py -e -p h245 -c ./h245.cnf -s ./packet-h245-template -D . MULTIMEDIA-SYSTEM-CONTROL.asn */
/* Input file: packet-h245-template.h */
diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c
index 3a19158a53..761a6d794f 100644
--- a/epan/dissectors/packet-h264.c
+++ b/epan/dissectors/packet-h264.c
@@ -40,6 +40,7 @@
#include <epan/packet.h>
#include <epan/proto.h>
#include <epan/asn1.h>
+#include <epan/strutil.h>
#include "prefs.h"
@@ -346,25 +347,25 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
str[0]='\0';
for(bit=0;bit<((int)(bit_offset&0x07));bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
leading_zero_bits = -1;
for( b = 0; !b; leading_zero_bits++ ){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
if(bit&&(!(bit%8))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
b = tvb_get_bits8(tvb, bit_offset, 1);
if(b != 0){
- strcat(str, "1");
+ g_strlcat(str, "1", 256);
} else {
- strcat(str, "0");
+ g_strlcat(str, "0", 256);
}
bit++;
bit_offset++;
@@ -375,13 +376,13 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
*start_bit_offset = bit_offset;
for(;bit%8;bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
if(hf_field){
- strcat(str," = ");
- strcat(str,hf_field->name);
+ g_strlcat(str," = ", 256);
+ g_strlcat(str,hf_field->name, 256);
switch (descriptor){
case H264_SE_V:
/* if the syntax element is coded as se(v),
@@ -471,25 +472,25 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
/* read the bits for the int */
for(i=0;i<leading_zero_bits;i++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
if(bit&&(!(bit%8))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
bit++;
tmp = value & mask;
if(tmp != 0){
- strcat(str, "1");
+ g_strlcat(str, "1", 256);
} else {
- strcat(str, "0");
+ g_strlcat(str, "0", 256);
}
mask = mask>>1;
}
for(;bit%8;bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
switch (descriptor){
@@ -511,11 +512,11 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
}
if(hf_field){
- strcat(str," = ");
- strcat(str,hf_field->name);
+ g_strlcat(str," = ", 256);
+ g_strlcat(str,hf_field->name, 256);
switch (descriptor){
case H264_SE_V:
- strcat(str,"(se(v))");
+ g_strlcat(str,"(se(v))", 256);
/* if the syntax element is coded as se(v),
* the value of the syntax element is derived by invoking the
* mapping process for signed Exp-Golomb codes as specified in
diff --git a/epan/dissectors/packet-h450-ros.c b/epan/dissectors/packet-h450-ros.c
index d8575b594f..cee87331a7 100644
--- a/epan/dissectors/packet-h450-ros.c
+++ b/epan/dissectors/packet-h450-ros.c
@@ -410,7 +410,7 @@ dissect_h450_ros_GeneralProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
#line 51 "h450-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(h450_ros_GeneralProblem_vals), ""), 64);
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_GeneralProblem_vals), ""), 64);
problem_str[64-1] = '\0';
return offset;
@@ -435,7 +435,7 @@ dissect_h450_ros_InvokeProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
#line 54 "h450-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(h450_ros_InvokeProblem_vals), ""), 64);
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_InvokeProblem_vals), ""), 64);
problem_str[64-1] = '\0';
return offset;
@@ -455,7 +455,7 @@ dissect_h450_ros_ReturnResultProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
#line 57 "h450-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnResultProblem_vals), ""), 64);
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnResultProblem_vals), ""), 64);
problem_str[64-1] = '\0';
return offset;
@@ -477,7 +477,7 @@ dissect_h450_ros_ReturnErrorProblem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, &problem_val);
#line 60 "h450-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnErrorProblem_vals), ""), 64);
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnErrorProblem_vals), ""), 64);
problem_str[64-1] = '\0';
return offset;
diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c
index 320eb5e28b..ce7dfb50a2 100644
--- a/epan/dissectors/packet-icmpv6.c
+++ b/epan/dissectors/packet-icmpv6.c
@@ -50,6 +50,7 @@
#include <epan/ipproto.h>
#include <epan/emem.h>
#include <epan/asn1.h>
+#include <epan/strutil.h>
#include "packet-ber.h"
#include "packet-ipv6.h"
@@ -885,7 +886,7 @@ bitrange(tvbuff_t *tvb, int offset, int l, int s)
for (i = 0; i < l; i++) {
if (bitrange0(tvb_get_ntohl(tvb, offset + i * 4), s + i * 4, q, eq - q) == NULL) {
if (q != buf && q + 5 < buf + sizeof(buf))
- strncpy(q, ",...", 5);
+ g_strlcpy(q, ",...", 5);
return buf;
}
}
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 6964350423..83b11beeb5 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -4132,7 +4132,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of
proto_item_append_text(ti, ": \"%s\"",
format_text(ssid, tag_len));
if (tag_len < 32) {
- strncpy(wlan_stats.ssid, ssid, MAX_SSID_LEN);
+ g_strlcpy(wlan_stats.ssid, ssid, MAX_SSID_LEN);
wlan_stats.ssid[MAX_SSID_LEN-1] = '\0';
}
} else {
@@ -6713,13 +6713,13 @@ dissect_ieee80211_common (tvbuff_t * tvb, packet_info * pinfo,
}
if (algorithm == PROTECTION_ALG_WEP) {
- strncpy (wlan_stats.protection, "WEP", MAX_PROTECT_LEN);
+ g_strlcpy (wlan_stats.protection, "WEP", MAX_PROTECT_LEN);
} else if (algorithm == PROTECTION_ALG_TKIP) {
- strncpy (wlan_stats.protection, "TKIP", MAX_PROTECT_LEN);
+ g_strlcpy (wlan_stats.protection, "TKIP", MAX_PROTECT_LEN);
} else if (algorithm == PROTECTION_ALG_CCMP) {
- strncpy (wlan_stats.protection, "CCMP", MAX_PROTECT_LEN);
+ g_strlcpy (wlan_stats.protection, "CCMP", MAX_PROTECT_LEN);
} else {
- strncpy (wlan_stats.protection, "Unknown", MAX_PROTECT_LEN);
+ g_strlcpy (wlan_stats.protection, "Unknown", MAX_PROTECT_LEN);
}
#ifndef HAVE_AIRPDCAP
@@ -11213,7 +11213,7 @@ void set_airpdcap_keys(void)
/* XXX - This just lops the end if the key off if it's too long.
* Should we handle this more gracefully? */
- strncpy(key.UserPwd.Passphrase, dk->key->str, AIRPDCAP_WPA_PASSPHRASE_MAX_LEN);
+ g_strlcpy(key.UserPwd.Passphrase, dk->key->str, AIRPDCAP_WPA_PASSPHRASE_MAX_LEN);
key.UserPwd.SsidLen = 0;
if(dk->ssid != NULL && dk->ssid->len <= AIRPDCAP_WPA_SSID_MAX_LEN)
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index ec52e42ad3..df003f4a3e 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -61,6 +61,7 @@
#include <epan/emem.h>
#include <epan/nstime.h>
#include <epan/expert.h>
+#include <epan/strutil.h>
static int ip_tap = -1;
@@ -572,13 +573,13 @@ dissect_ipopt_cipso(const ip_tcp_opt *optp, tvbuff_t *tvb, int offset,
while (cat_str_len < (strlen(cat_str) + 2 + USHRT_MAX_STRLEN))
cat_str_len += cat_str_len;
cat_str_new = ep_alloc(cat_str_len);
- strncpy(cat_str_new, cat_str, cat_str_len);
+ g_strlcpy(cat_str_new, cat_str, cat_str_len);
cat_str_new[cat_str_len - 1] = '\0';
cat_str = cat_str_new;
}
if (cat_str[0] != '\0')
- strncat(cat_str, ",", cat_str_len - 1);
- strncat(cat_str, cat_str_tmp, cat_str_len - 1);
+ g_strlcat(cat_str, ",", cat_str_len);
+ g_strlcat(cat_str, cat_str_tmp, cat_str_len);
}
bit_spot++;
bitmask >>= 1;
@@ -627,8 +628,8 @@ dissect_ipopt_cipso(const ip_tcp_opt *optp, tvbuff_t *tvb, int offset,
offset += 2;
cat_str_tmp[USHRT_MAX_STRLEN - 1] = '\0';
if (cat_str[0] != '\0')
- strncat(cat_str, ",", USHRT_MAX_STRLEN * 15 - 1);
- strncat(cat_str, cat_str_tmp, USHRT_MAX_STRLEN * 15 - 1);
+ g_strlcat(cat_str, ",", USHRT_MAX_STRLEN * 15);
+ g_strlcat(cat_str, cat_str_tmp, USHRT_MAX_STRLEN * 15);
}
proto_tree_add_text(field_tree, tvb, offset - taglen + 4, taglen - 4,
@@ -676,8 +677,8 @@ dissect_ipopt_cipso(const ip_tcp_opt *optp, tvbuff_t *tvb, int offset,
else
g_snprintf(cat_str_tmp, USHRT_MAX_STRLEN * 2, "%u", cat_high);
if (cat_str[0] != '\0')
- strncat(cat_str, ",", USHRT_MAX_STRLEN * 16 - 1);
- strncat(cat_str, cat_str_tmp, USHRT_MAX_STRLEN * 16 - 1);
+ g_strlcat(cat_str, ",", USHRT_MAX_STRLEN * 16);
+ g_strlcat(cat_str, cat_str_tmp, USHRT_MAX_STRLEN * 16);
}
proto_tree_add_text(field_tree, tvb, offset - taglen + 4, taglen - 4,
diff --git a/epan/dissectors/packet-mgcp.c b/epan/dissectors/packet-mgcp.c
index 445c5524e0..1a6539cec8 100644
--- a/epan/dissectors/packet-mgcp.c
+++ b/epan/dissectors/packet-mgcp.c
@@ -45,6 +45,7 @@
#include <epan/prefs.h>
#include <epan/conversation.h>
#include <epan/tap.h>
+#include <epan/strutil.h>
#include "packet-mgcp.h"
#ifdef NEED_G_ASCII_STRCASECMP_H
@@ -1451,8 +1452,7 @@ static void dissect_mgcp_firstline(tvbuff_t *tvb, packet_info *pinfo, proto_tree
if (tokenlen > 4)
THROW(ReportedBoundsError);
code = tvb_format_text(tvb,tvb_previous_offset,tokenlen);
- strncpy(mi->code,code,4);
- mi->code[4] = '\0';
+ g_strlcpy(mi->code,code,5);
if (is_mgcp_verb(tvb,tvb_previous_offset,tvb_current_len,&verb_description))
{
mgcp_type = MGCP_REQUEST;
@@ -1597,7 +1597,7 @@ static void dissect_mgcp_firstline(tvbuff_t *tvb, packet_info *pinfo, proto_tree
mi->request_available = TRUE;
mgcp_call->responded = TRUE;
mi->req_num = mgcp_call->req_num;
- strncpy(mi->code,mgcp_call->code,5);
+ g_strlcpy(mi->code,mgcp_call->code,5);
item = proto_tree_add_uint_format(tree, hf_mgcp_req_frame,
tvb, 0, 0, mgcp_call->req_num,
"This is a response to a request in frame %u",
@@ -1751,7 +1751,7 @@ static void dissect_mgcp_firstline(tvbuff_t *tvb, packet_info *pinfo, proto_tree
mgcp_call->transid = mi->transid;
mgcp_call->responded = FALSE;
mgcp_call->req_time=pinfo->fd->abs_ts;
- strncpy(mgcp_call->code,mi->code,5);
+ g_strlcpy(mgcp_call->code,mi->code,5);
/* Store it */
g_hash_table_insert(mgcp_calls, new_mgcp_call_key, mgcp_call);
diff --git a/epan/dissectors/packet-msrp.c b/epan/dissectors/packet-msrp.c
index 30dca6d7c3..0cc7561733 100644
--- a/epan/dissectors/packet-msrp.c
+++ b/epan/dissectors/packet-msrp.c
@@ -37,7 +37,7 @@
#include <glib.h>
#include <epan/conversation.h>
-
+#include <epan/strutil.h>
#include <epan/packet.h>
#include <epan/emem.h>
#include "prefs.h"
@@ -214,8 +214,7 @@ void msrp_add_address( packet_info *pinfo,
* Update the conversation data.
*/
p_conv_data->setup_method_set = TRUE;
- strncpy(p_conv_data->setup_method, setup_method, MAX_MSRP_SETUP_METHOD_SIZE);
- p_conv_data->setup_method[MAX_MSRP_SETUP_METHOD_SIZE] = '\0';
+ g_strlcpy(p_conv_data->setup_method, setup_method, MAX_MSRP_SETUP_METHOD_SIZE);
p_conv_data->setup_frame_number = setup_frame_number;
}
diff --git a/epan/dissectors/packet-nbns.c b/epan/dissectors/packet-nbns.c
index 1895f431bd..db85150b6d 100644
--- a/epan/dissectors/packet-nbns.c
+++ b/epan/dissectors/packet-nbns.c
@@ -39,6 +39,7 @@
#include "packet-tcp.h"
#include "packet-frame.h"
#include <epan/prefs.h>
+#include <epan/strutil.h>
static int proto_nbns = -1;
static int hf_nbns_flags = -1;
@@ -465,10 +466,9 @@ nbns_add_nbns_flags(column_info *cinfo, proto_tree *nbns_tree, tvbuff_t *tvb, in
opcode = (guint16) ((flags & F_OPCODE) >> OPCODE_SHIFT);
g_snprintf(buf, MAX_BUF_SIZE, "%s", val_to_str(opcode, opcode_vals, "Unknown operation"));
if (flags & F_RESPONSE && !is_wack) {
- strncat(buf, " response", MAX_BUF_SIZE - strlen(buf));
- strncat(buf, ", ", MAX_BUF_SIZE - strlen(buf));
- strncat(buf, val_to_str(flags & F_RCODE, rcode_vals,
- "Unknown error"), MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, " response", MAX_BUF_SIZE);
+ g_strlcat(buf, ", ", MAX_BUF_SIZE);
+ g_strlcat(buf, val_to_str(flags & F_RCODE, rcode_vals, "Unknown error"), MAX_BUF_SIZE);
buf[MAX_BUF_SIZE-1] = '\0';
if ((flags & F_RCODE) && check_col(cinfo, COL_INFO))
col_append_fstr(cinfo, COL_INFO, ", %s",
@@ -519,11 +519,11 @@ nbns_add_nb_flags(proto_tree *rr_tree, tvbuff_t *tvb, int offset, gushort flags)
buf=ep_alloc(MAX_BUF_SIZE);
g_snprintf(buf, MAX_BUF_SIZE, "%s", val_to_str(flags & NB_FLAGS_ONT, nb_flags_ont_vals,
"Unknown"));
- strncat(buf, ", ", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, ", ", MAX_BUF_SIZE);
if (flags & NB_FLAGS_G)
- strncat(buf, "group", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, "group", MAX_BUF_SIZE);
else
- strncat(buf, "unique", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, "unique", MAX_BUF_SIZE);
buf[MAX_BUF_SIZE-1] = '\0';
tf = proto_tree_add_text(rr_tree, tvb, offset, 2, "Flags: 0x%x (%s)", flags,
buf);
@@ -555,19 +555,19 @@ nbns_add_name_flags(proto_tree *rr_tree, tvbuff_t *tvb, int offset,
buf=ep_alloc(MAX_BUF_SIZE);
g_snprintf(buf, MAX_BUF_SIZE, "%s", val_to_str(flags & NAME_FLAGS_ONT, name_flags_ont_vals,
"Unknown"));
- strncat(buf, ", ", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, ", ", MAX_BUF_SIZE);
if (flags & NAME_FLAGS_G)
- strncat(buf, "group", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, "group", MAX_BUF_SIZE);
else
- strncat(buf, "unique", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, "unique", MAX_BUF_SIZE);
if (flags & NAME_FLAGS_DRG)
- strncat(buf, ", being deregistered", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, ", being deregistered", MAX_BUF_SIZE);
if (flags & NAME_FLAGS_CNF)
- strncat(buf, ", in conflict", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, ", in conflict", MAX_BUF_SIZE);
if (flags & NAME_FLAGS_ACT)
- strncat(buf, ", active", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, ", active", MAX_BUF_SIZE);
if (flags & NAME_FLAGS_PRM)
- strncat(buf, ", permanent node name", MAX_BUF_SIZE - strlen(buf));
+ g_strlcat(buf, ", permanent node name", MAX_BUF_SIZE);
buf[MAX_BUF_SIZE-1] = '\0';
tf = proto_tree_add_text(rr_tree, tvb, offset, 2, "Name flags: 0x%x (%s)",
flags, buf);
@@ -666,10 +666,9 @@ dissect_nbns_answer(tvbuff_t *tvb, int offset, int nbns_data_offset,
(data_offset - data_start) + data_len,
"%s: type %s, class %s",
name, type_name, class_name);
- strncat(name, " (", MAX_NAME_LEN - strlen(name));
- strncat(name, netbios_name_type_descr(name_type), MAX_NAME_LEN - strlen(name));
- strncat(name, ")", MAX_NAME_LEN - strlen(name));
- name[MAX_NAME_LEN-1] = '\0';
+ g_strlcat(name, " (", MAX_NAME_LEN);
+ g_strlcat(name, netbios_name_type_descr(name_type), MAX_NAME_LEN);
+ g_strlcat(name, ")", MAX_NAME_LEN);
rr_tree = add_rr_to_tree(trr, ett_nbns_rr, tvb, offset, name,
name_len, type_name, dns_class_name(class), ttl, data_len);
while (data_len > 0) {
diff --git a/epan/dissectors/packet-ncp-sss.c b/epan/dissectors/packet-ncp-sss.c
index 0eb319b747..18aaa01809 100644
--- a/epan/dissectors/packet-ncp-sss.c
+++ b/epan/dissectors/packet-ncp-sss.c
@@ -1,4 +1,3 @@
-
/* packet-ncp-sss.c
* Routines for Novell SecretStore Services
* Greg Morris <gmorris@novell.com>
@@ -32,6 +31,7 @@
#include <string.h>
#include <glib.h>
#include <epan/packet.h>
+#include <epan/strutil.h>
#include "prefs.h"
#include "packet-ncp-int.h"
#include "packet-ncp-sss.h"
@@ -228,104 +228,104 @@ process_flags(proto_tree *sss_tree, tvbuff_t *tvb, guint32 foffset)
{
if (flags & bvalue)
{
- strncat(flags_str, sep, 1024 - strlen(flags_str));
+ g_strlcat(flags_str, sep, 1024);
switch(bvalue)
{
case 0x00000001:
- strncat(flags_str, "Enhanced Protection", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Enhanced Protection", 1024);
break;
case 0x00000002:
- strncat(flags_str, "Create ID", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Create ID", 1024);
break;
case 0x00000004:
- strncat(flags_str, "Remove Lock", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Remove Lock", 1024);
break;
case 0x00000008:
- strncat(flags_str, "Repair", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Repair", 1024);
break;
case 0x00000010:
- strncat(flags_str, "Unicode", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Unicode", 1024);
break;
case 0x00000020:
- strncat(flags_str, "EP Master Password Used", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "EP Master Password Used", 1024);
break;
case 0x00000040:
- strncat(flags_str, "EP Password Used", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "EP Password Used", 1024);
break;
case 0x00000080:
- strncat(flags_str, "Set Tree Name", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Set Tree Name", 1024);
break;
case 0x00000100:
- strncat(flags_str, "Get Context", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Get Context", 1024);
break;
case 0x00000200:
- strncat(flags_str, "Destroy Context", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Destroy Context", 1024);
break;
case 0x00000400:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x00000800:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x00001000:
- strncat(flags_str, "EP Lock", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "EP Lock", 1024);
break;
case 0x00002000:
- strncat(flags_str, "Not Initialized", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Initialized", 1024);
break;
case 0x00004000:
- strncat(flags_str, "Enhanced Protection", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Enhanced Protection", 1024);
break;
case 0x00008000:
- strncat(flags_str, "Store Not Synced", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Store Not Synced", 1024);
break;
case 0x00010000:
- strncat(flags_str, "Admin Last Modified", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Admin Last Modified", 1024);
break;
case 0x00020000:
- strncat(flags_str, "EP Password Present", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "EP Password Present", 1024);
break;
case 0x00040000:
- strncat(flags_str, "EP Master Password Present", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "EP Master Password Present", 1024);
break;
case 0x00080000:
- strncat(flags_str, "MP Disabled", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "MP Disabled", 1024);
break;
case 0x00100000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x00200000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x00400000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x00800000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x01000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x02000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x04000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x08000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x10000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x20000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x40000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
case 0x80000000:
- strncat(flags_str, "Not Defined", 1024 - strlen(flags_str));
+ g_strlcat(flags_str, "Not Defined", 1024);
break;
default:
break;
@@ -334,7 +334,7 @@ process_flags(proto_tree *sss_tree, tvbuff_t *tvb, guint32 foffset)
}
bvalue = bvalue*2;
}
- flags_str[1024-1] = '\0';
+
tinew = proto_tree_add_uint_format(sss_tree, hf_flags, tvb, foffset, 4, flags, "%s 0x%08x", "Flags:", flags);
flags_tree = proto_item_add_subtree(tinew, ett_nds);
diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c
index 0a821953d3..16e990f949 100644
--- a/epan/dissectors/packet-nfs.c
+++ b/epan/dissectors/packet-nfs.c
@@ -39,6 +39,7 @@
#include <epan/prefs.h>
#include <epan/packet.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
static int proto_nfs = -1;
@@ -1317,10 +1318,11 @@ dissect_fhandle_data_NETAPP(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *t
flag_string=ep_alloc(512);
flag_string[0]=0;
- while (bit--)
- if (flags & (1<<bit))
- strncat(flag_string, strings[bit], 512 - strlen(flag_string));
- flag_string[512-1] = '\0';
+ while (bit--) {
+ if (flags & (1<<bit)) {
+ g_strlcat(flag_string, strings[bit], 512);
+ }
+ }
item = proto_tree_add_text(tree, tvb, offset + 0, 8,
"mount (inode %u)", mount);
subtree = proto_item_add_subtree(item, ett_nfs_fh_mount);
@@ -1439,10 +1441,9 @@ dissect_fhandle_data_NETAPP_V4(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree
while (bit--) {
if (flags & (1<<bit)) {
- strncat(flag_string, strings[bit], 512 - strlen(flag_string));
+ g_strlcat(flag_string, strings[bit], 512);
}
}
- flag_string[512-1] = '\0';
item = proto_tree_add_text(tree, tvb, offset + 0, 8, "export (inode %u)", fileid);
subtree = proto_item_add_subtree(item, ett_nfsv4_fh_export);
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index 3ecfefc1d8..7302facbe3 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -45,6 +45,7 @@ proper helper routines
#include <epan/prefs.h>
#include <epan/emem.h>
#include <epan/asn1.h>
+#include <epan/strutil.h>
#include "packet-per.h"
@@ -335,27 +336,27 @@ dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _
g_snprintf(str, 256, " ");
for(bit=0;bit<((int)(offset&0x07));bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
/* read the bits for the int */
num_bits = 8;
for(i=0;i<num_bits;i++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
if(bit&&(!(bit%8))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
bit++;
offset=dissect_per_boolean(tvb, offset, actx, tree, -1, &tmp);
val<<=1;
if(tmp){
val|=1;
- strcat(str, "1");
+ g_strlcat(str, "1", 256);
} else {
- strcat(str, "0");
+ g_strlcat(str, "0", 256);
}
}
if((val&0x80)==0){
@@ -1181,34 +1182,34 @@ DEBUG_ENTRY("dissect_per_constrained_integer");
g_snprintf(str, 256, "%s: ", hfi->name);
for(bit=0;bit<((int)(offset&0x07));bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
/* read the bits for the int */
for(i=0;i<num_bits;i++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
if(bit&&(!(bit%8))){
length+=1;
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
bit++;
offset=dissect_per_boolean(tvb, offset, actx, tree, -1, &tmp);
val<<=1;
if(tmp){
val|=1;
- strcat(str, "1");
+ g_strlcat(str, "1", 256);
} else {
- strcat(str, "0");
+ g_strlcat(str, "0", 256);
}
}
for(;bit%8;bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
val_start = (offset-num_bits)>>3; val_length = length;
val+=min;
@@ -1376,34 +1377,34 @@ DEBUG_ENTRY("dissect_per_constrained_integer_64b");
g_snprintf(str, 256, "%s: ", hfi->name);
for(bit=0;bit<((int)(offset&0x07));bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
/* read the bits for the int */
for(i=0;i<num_bits;i++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
if(bit&&(!(bit%8))){
length+=1;
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
bit++;
offset=dissect_per_boolean(tvb, offset, actx, tree, -1, &tmp);
val<<=1;
if(tmp){
val|=1;
- strcat(str, "1");
+ g_strlcat(str, "1", 256);
} else {
- strcat(str, "0");
+ g_strlcat(str, "0", 256);
}
}
for(;bit%8;bit++){
if(bit&&(!(bit%4))){
- strcat(str, " ");
+ g_strlcat(str, " ", 256);
}
- strcat(str,".");
+ g_strlcat(str,".", 256);
}
val_start = (offset-num_bits)>>3; val_length = length;
val+=min;
diff --git a/epan/dissectors/packet-q932-ros.c b/epan/dissectors/packet-q932-ros.c
index 9e1edcfe5b..3cdb9bed78 100644
--- a/epan/dissectors/packet-q932-ros.c
+++ b/epan/dissectors/packet-q932-ros.c
@@ -245,7 +245,7 @@ dissect_q932_ros_T_linkedId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
dissect_q932_ros_InvokeArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 73 "q932-ros.cnf"
+#line 69 "q932-ros.cnf"
gint len;
len = tvb_length_remaining(tvb, offset);
@@ -320,7 +320,7 @@ dissect_q932_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_q932_ros_ResultArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 91 "q932-ros.cnf"
+#line 87 "q932-ros.cnf"
gint len;
len = tvb_length_remaining(tvb, offset);
@@ -409,7 +409,7 @@ dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_q932_ros_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 110 "q932-ros.cnf"
+#line 106 "q932-ros.cnf"
gint len;
@@ -495,8 +495,7 @@ dissect_q932_ros_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
&problem_val);
#line 54 "q932-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(q932_ros_GeneralProblem_vals), ""), 64);
- problem_str[64-1] = '\0';
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(q932_ros_GeneralProblem_vals), ""), 64);
return offset;
}
@@ -520,9 +519,8 @@ dissect_q932_ros_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 57 "q932-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(q932_ros_InvokeProblem_vals), ""), 64);
- problem_str[64-1] = '\0';
+#line 56 "q932-ros.cnf"
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(q932_ros_InvokeProblem_vals), ""), 64);
return offset;
}
@@ -541,9 +539,8 @@ dissect_q932_ros_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 60 "q932-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(q932_ros_ReturnResultProblem_vals), ""), 64);
- problem_str[64-1] = '\0';
+#line 58 "q932-ros.cnf"
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(q932_ros_ReturnResultProblem_vals), ""), 64);
return offset;
}
@@ -564,9 +561,8 @@ dissect_q932_ros_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&problem_val);
-#line 63 "q932-ros.cnf"
- strncpy(problem_str, val_to_str(problem_val, VALS(q932_ros_ReturnErrorProblem_vals), ""), 64);
- problem_str[64-1] = '\0';
+#line 60 "q932-ros.cnf"
+ g_strlcpy(problem_str, val_to_str(problem_val, VALS(q932_ros_ReturnErrorProblem_vals), ""), 64);
return offset;
}
diff --git a/epan/dissectors/packet-quakeworld.c b/epan/dissectors/packet-quakeworld.c
index 5bc90053ea..2720e3e5a9 100644
--- a/epan/dissectors/packet-quakeworld.c
+++ b/epan/dissectors/packet-quakeworld.c
@@ -35,6 +35,7 @@
#include <string.h>
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/strutil.h>
static int proto_quakeworld = -1;
@@ -509,10 +510,9 @@ dissect_quakeworld_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo,
}
remaining[0] = 0;
for (i=2; i<Cmd_Argc() ; i++) {
- strncat (remaining, Cmd_Argv(i), MAX_TEXT_SIZE - strlen(remaining));
- strncat (remaining, " ", MAX_TEXT_SIZE - strlen(remaining));
+ g_strlcat (remaining, Cmd_Argv(i), MAX_TEXT_SIZE+1);
+ g_strlcat (remaining, " ", MAX_TEXT_SIZE+1);
}
- remaining[MAX_TEXT_SIZE] = '\0';
if (text_tree) {
proto_tree_add_string(argument_tree,
hf_quakeworld_connectionless_rcon_command,
diff --git a/epan/dissectors/packet-rdt.c b/epan/dissectors/packet-rdt.c
index 863b611a5e..34bf9d5b71 100644
--- a/epan/dissectors/packet-rdt.c
+++ b/epan/dissectors/packet-rdt.c
@@ -44,6 +44,7 @@
#include <epan/conversation.h>
#include <epan/prefs.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
#include "packet-rdt.h"
@@ -285,8 +286,7 @@ void rdt_add_address(packet_info *pinfo,
}
/* Update the conversation data. */
- strncpy(p_conv_data->method, setup_method, MAX_RDT_SETUP_METHOD_SIZE);
- p_conv_data->method[MAX_RDT_SETUP_METHOD_SIZE] = '\0';
+ g_strlcpy(p_conv_data->method, setup_method, MAX_RDT_SETUP_METHOD_SIZE);
p_conv_data->frame_number = pinfo->fd->num;
p_conv_data->feature_level = rdt_feature_level;
}
diff --git a/epan/dissectors/packet-rmi.c b/epan/dissectors/packet-rmi.c
index 5ca84f7245..62947dffc0 100644
--- a/epan/dissectors/packet-rmi.c
+++ b/epan/dissectors/packet-rmi.c
@@ -204,13 +204,12 @@ dissect_rmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb, offset + 1, 2, len);
memset(epid_hostname, 0, sizeof(epid_hostname));
if (len < sizeof(epid_hostname)) {
- strncpy(epid_hostname,tvb_get_ptr(tvb, offset + 3, len),
+ g_strlcpy(epid_hostname,tvb_get_ptr(tvb, offset + 3, len),
sizeof(epid_hostname));
} else {
- strncpy(epid_hostname,
+ g_strlcpy(epid_hostname,
"<string too long>", sizeof(epid_hostname));
}
- epid_hostname[sizeof(epid_hostname)-1] = '\0';
proto_tree_add_string(rmi_tree, hf_rmi_epid_hostname,
tvb, offset + 3, strlen(epid_hostname),
epid_hostname);
diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c
index 7667d6efed..733e05ded1 100644
--- a/epan/dissectors/packet-rtcp.c
+++ b/epan/dissectors/packet-rtcp.c
@@ -66,6 +66,7 @@
#include <epan/prefs.h>
#include <epan/emem.h>
#include <epan/expert.h>
+#include <epan/strutil.h>
#ifdef NEED_G_ASCII_STRCASECMP_H
#include "g_ascii_strcasecmp.h"
@@ -554,8 +555,7 @@ void srtcp_add_address( packet_info *pinfo,
* Update the conversation data.
*/
p_conv_data->setup_method_set = TRUE;
- strncpy(p_conv_data->setup_method, setup_method, MAX_RTCP_SETUP_METHOD_SIZE);
- p_conv_data->setup_method[MAX_RTCP_SETUP_METHOD_SIZE] = '\0';
+ g_strlcpy(p_conv_data->setup_method, setup_method, MAX_RTCP_SETUP_METHOD_SIZE);
p_conv_data->setup_frame_number = setup_frame_number;
p_conv_data->srtcp_info = srtcp_info;
}
@@ -721,7 +721,7 @@ dissect_rtcp_rtpfb( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_item
nack_num_frames_lost ++;
if (rtcp_rtpfb_nack_blp) {
for (i = 0; i < 16; i ++) {
- sprintf(strbuf, "Frame %d also lost", rtcp_rtpfb_nack_pid + i + 1);
+ g_snprintf(strbuf, 64, "Frame %d also lost", rtcp_rtpfb_nack_pid + i + 1);
proto_tree_add_text(
bitfield_tree, tvb, offset, 2,
decode_boolean_bitfield(rtcp_rtpfb_nack_blp, (1<<i),
@@ -832,7 +832,7 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
/* Application Name (ASCII) */
for( counter = 0; counter < 4; counter++ )
ascii_name[ counter ] = tvb_get_guint8( tvb, offset + counter );
- /* strncpy( ascii_name, pd + offset, 4 ); */
+ /* g_strlcpy( ascii_name, pd + offset, 4 ); */
ascii_name[4] = '\0';
proto_tree_add_string( tree, hf_rtcp_name_ascii, tvb, offset, 4,
ascii_name );
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 2cd491ce47..8c67792981 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -75,6 +75,7 @@
#include <epan/prefs.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
#include "log.h"
@@ -446,8 +447,7 @@ void srtp_add_address(packet_info *pinfo,
/* Free the hash if already exists */
rtp_free_hash_dyn_payload(p_conv_data->rtp_dyn_payload);
- strncpy(p_conv_data->method, setup_method, MAX_RTP_SETUP_METHOD_SIZE);
- p_conv_data->method[MAX_RTP_SETUP_METHOD_SIZE] = '\0';
+ g_strlcpy(p_conv_data->method, setup_method, MAX_RTP_SETUP_METHOD_SIZE);
p_conv_data->frame_number = setup_frame_number;
p_conv_data->rtp_dyn_payload = rtp_dyn_payload;
p_conv_data->srtp_info = srtp_info;
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index 8d5013462a..5b2f00a2cc 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -51,6 +51,7 @@
#include <epan/reassemble.h>
#include <epan/asn1.h>
#include <epan/uat.h>
+#include <epan/strutil.h>
#include "packet-mtp3.h"
#include "packet-tcap.h"
#include "packet-sccp.h"
@@ -1015,13 +1016,13 @@ dissect_sccp_gt_address_information(tvbuff_t *tvb, proto_tree *tree,
even_signal = tvb_get_guint8(tvb, offset) & GT_EVEN_SIGNAL_MASK;
even_signal >>= GT_EVEN_SIGNAL_SHIFT;
- strncat(gt_digits, val_to_str(odd_signal, sccp_address_signal_values,
- "Unknown"), GT_MAX_SIGNALS - strlen(gt_digits));
+ g_strlcat(gt_digits, val_to_str(odd_signal, sccp_address_signal_values,
+ "Unknown"), GT_MAX_SIGNALS+1);
/* If the last signal is NOT filler */
if (offset != (length - 1) || even_length == TRUE)
- strncat(gt_digits, val_to_str(even_signal, sccp_address_signal_values,
- "Unknown"), GT_MAX_SIGNALS - strlen(gt_digits));
+ g_strlcat(gt_digits, val_to_str(even_signal, sccp_address_signal_values,
+ "Unknown"), GT_MAX_SIGNALS+1);
offset += GT_SIGNAL_LENGTH;
}
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index 54290b31d9..7e67599506 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -57,6 +57,7 @@
#include <epan/packet.h>
#include <epan/req_resp_hdrs.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
#include "packet-isup.h"
#include "packet-sip.h"
@@ -2022,7 +2023,7 @@ separator_found2:
return offset - orig_offset;
}
else {
- strncpy(cseq_method, value+sub_value_offset, MIN(strlen_to_copy, MAX_CSEQ_METHOD_SIZE));
+ g_strlcpy(cseq_method, value+sub_value_offset, MAX_CSEQ_METHOD_SIZE);
/* Add CSeq method to the tree */
if (cseq_tree)
@@ -2115,10 +2116,7 @@ separator_found2:
case POS_CALL_ID :
/* Store the Call-id */
- strncpy(call_id, value,
- strlen(value)+1 < MAX_CALL_ID_SIZE ?
- strlen(value)+1 :
- MAX_CALL_ID_SIZE);
+ g_strlcpy(call_id, value, MAX_CALL_ID_SIZE);
stat_info->tap_call_id = ep_strdup(call_id);
/* Add 'Call-id' string item to tree */
@@ -2743,10 +2741,8 @@ guint sip_is_packet_resend(packet_info *pinfo,
/* No packet entry found, consult global hash table */
/* Prepare the key */
- strncpy(key.call_id, call_id,
- (strlen(call_id)+1 <= MAX_CALL_ID_SIZE) ?
- strlen(call_id)+1 :
- MAX_CALL_ID_SIZE);
+ g_strlcpy(key.call_id, call_id, MAX_CALL_ID_SIZE);
+
/* We're only using these addresses locally (for the hash lookup) so
* there is no need to make a (g_malloc'd) copy of them.
*/
@@ -2787,8 +2783,7 @@ guint sip_is_packet_resend(packet_info *pinfo,
p_key->source_port = pinfo->srcport;
p_val->cseq = cseq_number;
- strncpy(p_val->method, cseq_method, MAX_CSEQ_METHOD_SIZE-1);
- p_val->method[MAX_CSEQ_METHOD_SIZE-1] = '\0';
+ g_strlcpy(p_val->method, cseq_method, MAX_CSEQ_METHOD_SIZE);
p_val->transaction_state = nothing_seen;
p_val->frame_number = 0;
diff --git a/epan/dissectors/packet-smb-common.c b/epan/dissectors/packet-smb-common.c
index 6b288f039b..cb8194f546 100644
--- a/epan/dissectors/packet-smb-common.c
+++ b/epan/dissectors/packet-smb-common.c
@@ -35,6 +35,7 @@
#include <epan/packet.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
#include "packet-smb-common.h"
/*
@@ -331,7 +332,7 @@ get_unicode_or_ascii_string(tvbuff_t *tvb, int *offsetp,
tvb_memcpy(tvb, (guint8 *)cur, *offsetp, copylen);
cur[copylen] = '\0';
if (overflow)
- strncat(cur, "...",4);
+ g_strlcat(cur, "...",MAX_UNICODE_STR_LEN+3+1);
string_len = *len;
string = cur;
} else {
diff --git a/epan/dissectors/packet-smb-sidsnooping.c b/epan/dissectors/packet-smb-sidsnooping.c
index 5d868a0827..928a5a258b 100644
--- a/epan/dissectors/packet-smb-sidsnooping.c
+++ b/epan/dissectors/packet-smb-sidsnooping.c
@@ -34,6 +34,7 @@
#include "epan/proto.h"
#include <epan/tap.h>
#include <epan/emem.h>
+#include <epan/strutil.h>
#include "packet-dcerpc.h"
#include "packet-dcerpc-nt.h"
#include "register.h"
@@ -206,7 +207,7 @@ samr_query_dispinfo(void *dummy _U_, packet_info *pinfo, epan_dissect_t *edt, co
fi_rid=gp_rids->pdata[num_rids-1];
fi_name=gp_names->pdata[num_rids-1];
- strncpy(sid_name, sid, len);
+ g_strlcpy(sid_name, sid, 256);
sid_name[len++]='-';
g_snprintf(sid_name+len, 256-len, "%d",fi_rid->value.value.sinteger);
add_sid_name_mapping(sid_name, fi_name->value.value.string);
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index 93c44c805a..40cad22302 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -5113,8 +5113,7 @@ dissect_search_resume_key(tvbuff_t *tvb, packet_info *pinfo,
TRUE, TRUE, bcp);
CHECK_STRING_SUBR(fn);
/* ensure that it's null-terminated */
- strncpy(fname, fn, 11);
- fname[11] = '\0';
+ g_strlcpy(fname, fn, 11+1);
proto_tree_add_string(tree, hf_smb_file_name, tvb, offset, 11,
fname);
COUNT_BYTES_SUBR(fn_len);
@@ -5194,8 +5193,7 @@ dissect_search_dir_info(tvbuff_t *tvb, packet_info *pinfo,
TRUE, TRUE, bcp);
CHECK_STRING_SUBR(fn);
/* ensure that it's null-terminated */
- strncpy(fname, fn, 13);
- fname[13] = '\0';
+ g_strlcpy(fname, fn, 13+1);
proto_tree_add_string(tree, hf_smb_file_name, tvb, offset, fn_len,
fname);
COUNT_BYTES_SUBR(fn_len);
diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c
index f2f623befe..91e250ae8e 100644
--- a/epan/dissectors/packet-snmp.c
+++ b/epan/dissectors/packet-snmp.c
@@ -591,7 +591,7 @@ extern int dissect_snmp_VarBind(gboolean implicit_tag _U_,
pi = proto_tree_add_item(pt_varbind,hfid,tvb,value_offset,value_len,FALSE);
expert_add_info_format(actx->pinfo, pi, PI_RESPONSE_CODE, PI_NOTE, "%s",note);
- strncpy (label, note, ITEM_LABEL_LENGTH);
+ g_strlcpy (label, note, ITEM_LABEL_LENGTH);
goto set_label;
}
diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c
index 2280c80099..833006cec7 100644
--- a/epan/dissectors/packet-ssl-utils.c
+++ b/epan/dissectors/packet-ssl-utils.c
@@ -2091,14 +2091,14 @@ ssl_load_pkcs12(FILE* fp, const gchar *cert_passwd) {
buf_len = sizeof(buf_name);
ret = gnutls_x509_crt_get_dn_by_oid(ssl_cert, GNUTLS_OID_X520_COMMON_NAME, 0, 0, buf_name, &buf_len);
- if (ret < 0) { strncpy(buf_name, "<ERROR>", 256); }
+ if (ret < 0) { g_strlcpy(buf_name, "<ERROR>", 256); }
buf_len = sizeof(buf_email);
ret = gnutls_x509_crt_get_dn_by_oid(ssl_cert, GNUTLS_OID_PKCS9_EMAIL, 0, 0, buf_email, &buf_len);
- if (ret < 0) { strncpy(buf_email, "<ERROR>", 256); }
+ if (ret < 0) { g_strlcpy(buf_email, "<ERROR>", 128); }
buf_len = sizeof(buf_keyid);
ret = gnutls_x509_crt_get_key_id(ssl_cert, 0, buf_keyid, &buf_len);
- if (ret < 0) { strncpy(buf_keyid, "<ERROR>", 256); }
+ if (ret < 0) { g_strlcpy(buf_keyid, "<ERROR>", 32); }
private_key->x509_cert = ssl_cert;
ssl_debug_printf( "Certificate imported: %s <%s>, KeyID %s\n", buf_name, buf_email, bytes_to_str(buf_keyid, buf_len));
@@ -2355,7 +2355,7 @@ ssl_association_add(GTree* associations, dissector_handle_t handle, guint port,
assoc->tcp = tcp;
assoc->ssl_port = port;
assoc->info=g_malloc(strlen(protocol)+1);
- strncpy(assoc->info, protocol, strlen(protocol)+1);
+ g_strlcpy(assoc->info, protocol, strlen(protocol)+1);
assoc->handle = find_dissector(protocol);
assoc->from_key_list = from_key_list;
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index 0129bf4a04..b864a2310c 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -73,6 +73,7 @@
#include "packet-per.h"
#include "packet-tpkt.h"
#include <epan/emem.h>
+#include <epan/strutil.h>
#define PORT_T38 6004
static guint global_t38_tcp_port = PORT_T38;
@@ -158,7 +159,7 @@ static int hf_t38_fec_data = -1; /* T_fec_data */
static int hf_t38_fec_data_item = -1; /* OCTET_STRING */
/*--- End of included file: packet-t38-hf.c ---*/
-#line 131 "packet-t38-template.c"
+#line 132 "packet-t38-template.c"
/* T38 setup fields */
static int hf_t38_setup = -1;
@@ -190,7 +191,7 @@ static gint ett_t38_T_fec_info = -1;
static gint ett_t38_T_fec_data = -1;
/*--- End of included file: packet-t38-ett.c ---*/
-#line 149 "packet-t38-template.c"
+#line 150 "packet-t38-template.c"
static gint ett_t38_setup = -1;
static gint ett_data_fragment = -1;
@@ -316,8 +317,7 @@ void t38_add_address(packet_info *pinfo,
/*
* Update the conversation data.
*/
- strncpy(p_conv_data->setup_method, setup_method, MAX_T38_SETUP_METHOD_SIZE);
- p_conv_data->setup_method[MAX_T38_SETUP_METHOD_SIZE] = '\0';
+ g_strlcpy(p_conv_data->setup_method, setup_method, MAX_T38_SETUP_METHOD_SIZE);
p_conv_data->setup_frame_number = setup_frame_number;
p_conv_data->src_t38_info.reass_ID = 0;
p_conv_data->src_t38_info.reass_start_seqnum = -1;
@@ -1059,8 +1059,7 @@ init_t38_info_conv(packet_info *pinfo)
/* copy the t38 conversation info to the packet t38 conversation */
p_t38_packet_conv = se_alloc(sizeof(t38_conv));
- strncpy(p_t38_packet_conv->setup_method, p_t38_conv->setup_method, MAX_T38_SETUP_METHOD_SIZE);
- p_t38_packet_conv->setup_method[MAX_T38_SETUP_METHOD_SIZE] = '\0';
+ g_strlcpy(p_t38_packet_conv->setup_method, p_t38_conv->setup_method, MAX_T38_SETUP_METHOD_SIZE);
p_t38_packet_conv->setup_frame_number = p_t38_conv->setup_frame_number;
memcpy(&(p_t38_packet_conv->src_t38_info), &(p_t38_conv->src_t38_info), sizeof(t38_conv_info));
@@ -1349,7 +1348,7 @@ proto_register_t38(void)
"t38.OCTET_STRING", HFILL }},
/*--- End of included file: packet-t38-hfarr.c ---*/
-#line 695 "packet-t38-template.c"
+#line 694 "packet-t38-template.c"
{ &hf_t38_setup,
{ "Stream setup", "t38.setup", FT_STRING, BASE_NONE,
NULL, 0x0, "Stream setup, method and frame number", HFILL }},
@@ -1404,7 +1403,7 @@ proto_register_t38(void)
&ett_t38_T_fec_data,
/*--- End of included file: packet-t38-ettarr.c ---*/
-#line 736 "packet-t38-template.c"
+#line 735 "packet-t38-template.c"
&ett_t38_setup,
&ett_data_fragment,
&ett_data_fragments
diff --git a/epan/dissectors/packet-tcap.c b/epan/dissectors/packet-tcap.c
index 1fd894c913..d6297d21ca 100644
--- a/epan/dissectors/packet-tcap.c
+++ b/epan/dissectors/packet-tcap.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-tcap.c */
-/* ../../tools/asn2wrs.py -b -p tcap -c tcap.cnf -s packet-tcap-template tcap.asn */
+/* ../../tools/asn2wrs.py -b -p tcap -c ./tcap.cnf -s ./packet-tcap-template -D . tcap.asn */
/* Input file: packet-tcap-template.c */
@@ -44,6 +44,7 @@
#include <epan/oids.h>
#include <epan/emem.h>
#include <epan/asn1.h>
+#include <epan/strutil.h>
#include <stdio.h>
#include <string.h>
@@ -198,7 +199,7 @@ static int hf_tcap_T_protocol_versionre_version1 = -1;
static int hf_tcap_T_protocol_version3_version1 = -1;
/*--- End of included file: packet-tcap-hf.c ---*/
-#line 64 "packet-tcap-template.c"
+#line 65 "packet-tcap-template.c"
/* Initialize the subtree pointers */
static gint ett_tcap = -1;
@@ -269,7 +270,7 @@ static gint ett_tcap_OperationCode = -1;
static gint ett_tcap_ErrorCode = -1;
/*--- End of included file: packet-tcap-ett.c ---*/
-#line 80 "packet-tcap-template.c"
+#line 81 "packet-tcap-template.c"
#define MAX_SSN 254
static range_t *global_ssn_range;
@@ -435,7 +436,7 @@ static const value_string tcap_Associate_result_vals[] = {
static int
dissect_tcap_Associate_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -452,7 +453,7 @@ static const value_string tcap_T_dialogue_service_user_vals[] = {
static int
dissect_tcap_T_dialogue_service_user(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -469,7 +470,7 @@ static const value_string tcap_T_dialogue_service_provider_vals[] = {
static int
dissect_tcap_T_dialogue_service_provider(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -535,7 +536,7 @@ static const value_string tcap_ABRT_source_vals[] = {
static int
dissect_tcap_ABRT_source(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -724,7 +725,7 @@ static const value_string tcap_Release_request_reason_vals[] = {
static int
dissect_tcap_Release_request_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -766,7 +767,7 @@ static const value_string tcap_Release_response_reason_vals[] = {
static int
dissect_tcap_Release_response_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -885,7 +886,7 @@ dissect_tcap_DialoguePortion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_tcap_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -895,7 +896,7 @@ dissect_tcap_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_tcap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -987,7 +988,7 @@ dissect_tcap_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_tcap_INTEGER_M32768_32767(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -1073,7 +1074,7 @@ static const value_string tcap_GeneralProblem_vals[] = {
static int
dissect_tcap_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -1095,7 +1096,7 @@ static const value_string tcap_InvokeProblem_vals[] = {
static int
dissect_tcap_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -1112,7 +1113,7 @@ static const value_string tcap_ReturnResultProblem_vals[] = {
static int
dissect_tcap_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -1131,7 +1132,7 @@ static const value_string tcap_ReturnErrorProblem_vals[] = {
static int
dissect_tcap_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -1455,7 +1456,7 @@ static const value_string tcap_P_AbortCause_U_vals[] = {
static int
dissect_tcap_P_AbortCause_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -1863,7 +1864,7 @@ static const value_string tcap_ProblemPDU_vals[] = {
static int
dissect_tcap_ProblemPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -2080,7 +2081,7 @@ static const value_string tcap_P_Abort_cause_U_vals[] = {
static int
dissect_tcap_P_Abort_cause_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ NULL);
return offset;
}
@@ -2218,7 +2219,7 @@ static void dissect_UniDialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
/*--- End of included file: packet-tcap-fn.c ---*/
-#line 148 "packet-tcap-template.c"
+#line 149 "packet-tcap-template.c"
@@ -2312,7 +2313,7 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
if ( p_tcap_context && cur_oid && !p_tcap_context->oid_present ) {
/* Save the application context and the sub dissector */
ber_oid_dissector_table = find_dissector_table("ber.oid");
- strncpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
+ g_strlcpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
p_tcap_context->oid_present=TRUE;
if ( (subdissector_handle = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
p_tcap_context->subdissector_handle=subdissector_handle;
@@ -2348,7 +2349,7 @@ proto_reg_handoff_tcap(void)
/*--- End of included file: packet-tcap-dis-tab.c ---*/
-#line 270 "packet-tcap-template.c"
+#line 271 "packet-tcap-template.c"
}
static void init_tcap(void);
@@ -2911,7 +2912,7 @@ proto_register_tcap(void)
"", HFILL }},
/*--- End of included file: packet-tcap-hfarr.c ---*/
-#line 332 "packet-tcap-template.c"
+#line 333 "packet-tcap-template.c"
};
/* Setup protocol subtree array */
@@ -2976,7 +2977,7 @@ proto_register_tcap(void)
&ett_tcap_ErrorCode,
/*--- End of included file: packet-tcap-ettarr.c ---*/
-#line 342 "packet-tcap-template.c"
+#line 343 "packet-tcap-template.c"
};
/*static enum_val_t tcap_options[] = {
@@ -3203,7 +3204,7 @@ dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs
/* ACN, changed, Fallback to lower version
* and update the subdissector (purely formal)
*/
- strncpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
+ g_strlcpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
if ( (subdissector_handle = dissector_get_string_handle(ber_oid_dissector_table, cur_oid)) ) {
p_tcap_context->subdissector_handle=subdissector_handle;
p_tcap_context->subdissector_present=TRUE;
@@ -3211,7 +3212,7 @@ dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs
}
} else {
/* We do not have the OID in the TCAP context, so store it */
- strncpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
+ g_strlcpy(p_tcap_context->oid,cur_oid, LENGTH_OID);
p_tcap_context->oid_present=TRUE;
/* Try to find a subdissector according to OID */
if ( (subdissector_handle
diff --git a/epan/dissectors/packet-tcap.h b/epan/dissectors/packet-tcap.h
index 58a1913e97..b864576721 100644
--- a/epan/dissectors/packet-tcap.h
+++ b/epan/dissectors/packet-tcap.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-tcap.h */
-/* ../../tools/asn2wrs.py -b -p tcap -c tcap.cnf -s packet-tcap-template tcap.asn */
+/* ../../tools/asn2wrs.py -b -p tcap -c ./tcap.cnf -s ./packet-tcap-template -D . tcap.asn */
/* Input file: packet-tcap-template.h */
diff --git a/epan/dissectors/packet-telnet.c b/epan/dissectors/packet-telnet.c
index c52502a83a..495a362c37 100644
--- a/epan/dissectors/packet-telnet.c
+++ b/epan/dissectors/packet-telnet.c
@@ -500,14 +500,13 @@ dissect_comport_subopt(packet_info *pinfo _U_, const char *optname, tvbuff_t *tv
int bit = ls & 1;
if (bit) {
if (print_count != 0) {
- strncat(ls_buffer,", ",512-strlen(ls_buffer));
+ g_strlcat(ls_buffer,", ",512);
}
- strncat(ls_buffer,linestate_bits[idx], 512-strlen(ls_buffer));
+ g_strlcat(ls_buffer,linestate_bits[idx], 512);
print_count++;
}
ls = ls >> 1;
}
- ls_buffer[512-1] = '\0';
proto_tree_add_text(tree, tvb, offset, 2, print_pattern, source, ls_buffer);
} else {
const char *print_pattern = (cmd == TNCOMPORT_SETLINESTATEMASK) ?
@@ -531,14 +530,13 @@ dissect_comport_subopt(packet_info *pinfo _U_, const char *optname, tvbuff_t *tv
int bit = ms & 1;
if (bit) {
if (print_count != 0) {
- strncat(ms_buffer,", ",256-strlen(ms_buffer));
+ g_strlcat(ms_buffer,", ",256);
}
- strncat(ms_buffer,modemstate_bits[idx],256-strlen(ms_buffer));
+ g_strlcat(ms_buffer,modemstate_bits[idx],256);
print_count++;
}
ms = ms >> 1;
}
- ms_buffer[256-1] = '\0';
proto_tree_add_text(tree, tvb, offset, 2, print_pattern, source, ms_buffer);
} else {
const char *print_pattern = (cmd == TNCOMPORT_SETMODEMSTATEMASK) ?
diff --git a/epan/dissectors/packet-tpncp.c b/epan/dissectors/packet-tpncp.c
index 4b9e39473b..33b18bbf45 100644
--- a/epan/dissectors/packet-tpncp.c
+++ b/epan/dissectors/packet-tpncp.c
@@ -43,6 +43,7 @@
#include <epan/emem.h>
#include <epan/filesystem.h>
#include <epan/dissectors/packet-tcp.h>
+#include <epan/strutil.h>
/*-------------------------------------------------------------------------------------------------------------------------------------------*/
@@ -518,8 +519,7 @@ static gint fill_enums_id_vals(FILE *file) {
else
first_entry = 0;
tpncp_enums_name_vals[enum_val] = g_strdup(enum_name);
- strncpy(enum_type, enum_name, MAX_TPNCP_DB_ENTRY_LEN);
- enum_type[MAX_TPNCP_DB_ENTRY_LEN-1] = '\0';
+ g_strlcpy(enum_type, enum_name, MAX_TPNCP_DB_ENTRY_LEN);
}
tpncp_enums_id_vals[enum_val][i].strptr = g_strdup(enum_str);
tpncp_enums_id_vals[enum_val][i].value = enum_id;
@@ -640,8 +640,7 @@ static gint init_tpncp_data_fields_info(tpncp_data_field_info *data_fields_info,
}
current_tpncp_data_field_info->tpncp_data_field_descr = -1;
hf_entr.p_id = &current_tpncp_data_field_info->tpncp_data_field_descr;
- strncpy(current_tpncp_data_field_info->tpncp_data_field_name, tpncp_data_field_name, MAX_TPNCP_DATA_FIELD_NAME_LEN);
- current_tpncp_data_field_info->tpncp_data_field_name[MAX_TPNCP_DATA_FIELD_NAME_LEN-1] = '\0';
+ g_strlcpy(current_tpncp_data_field_info->tpncp_data_field_name, tpncp_data_field_name, MAX_TPNCP_DATA_FIELD_NAME_LEN);
hf_entr.hfinfo.name = current_tpncp_data_field_info->tpncp_data_field_name;
hf_entr.hfinfo.abbrev = current_tpncp_data_field_info->tpncp_data_field_name;
switch (tpncp_data_field_size) {