diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-09-24 21:22:24 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-09-24 21:22:24 +0000 |
commit | 64b85df39d04b53a5a296600934c45d87643b87d (patch) | |
tree | c0d0442ee2a8968f487105839f1aece38efe1a48 /epan/dissectors/packet-ospf.c | |
parent | fc32bd3c99096c9969f94891326cd971d3a7cd68 (diff) |
remove an array from the stack, remove some strcpy() and strcat() calls
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@15993 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-ospf.c')
-rw-r--r-- | epan/dissectors/packet-ospf.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/epan/dissectors/packet-ospf.c b/epan/dissectors/packet-ospf.c index d4eb98d9c4..e7691b0cc6 100644 --- a/epan/dissectors/packet-ospf.c +++ b/epan/dissectors/packet-ospf.c @@ -2272,47 +2272,46 @@ static void dissect_ospf_v3_prefix_options(tvbuff_t *tvb, int offset, proto_tree { guint8 prefix_options; - char prefix_options_string[11]; + char *prefix_options_string; guint8 position; position=0; prefix_options=tvb_get_guint8(tvb, offset); - strcpy(prefix_options_string,""); +#define OPT_STR_LEN 11 + prefix_options_string=ep_alloc(OPT_STR_LEN); + prefix_options_string[0]=0; if (prefix_options & OSPF_V3_PREFIX_OPTION_P) { - strcat(prefix_options_string, "P"); - position++; + prefix_options_string[position++]='P'; } if (prefix_options & OSPF_V3_PREFIX_OPTION_MC) { if ( (position > 0) && (prefix_options_string[position-1] != '/') ) { - strcat(prefix_options_string, "/"); - position++; + prefix_options_string[position++]='/'; } - strcat(prefix_options_string, "MC"); - position+=2; + prefix_options_string[position++]='M'; + prefix_options_string[position++]='C'; } if (prefix_options & OSPF_V3_PREFIX_OPTION_LA) { if ( (position > 0) && (prefix_options_string[position-1] != '/') ) { - strcat(prefix_options_string, "/"); - position++; + prefix_options_string[position++]='/'; } - strcat(prefix_options_string, "LA"); - position+=2; + prefix_options_string[position++]='L'; + prefix_options_string[position++]='A'; } if (prefix_options & OSPF_V3_PREFIX_OPTION_NU) { if ( (position > 0) && (prefix_options_string[position-1] != '/') ) { - strcat(prefix_options_string, "/"); - position++; + prefix_options_string[position++]='/'; } - strcat(prefix_options_string, "NU"); + prefix_options_string[position++]='N'; + prefix_options_string[position++]='U'; } - prefix_options_string[10]=0; + prefix_options_string[position]=0; proto_tree_add_text(tree, tvb, offset, 1, "PrefixOptions: 0x%02x (%s)",prefix_options, prefix_options_string); |