diff options
-rw-r--r-- | epan/dissectors/packet-pcnfsd.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-rpc.c | 11 | ||||
-rw-r--r-- | epan/dissectors/packet-rpc.h | 4 |
3 files changed, 16 insertions, 9 deletions
diff --git a/epan/dissectors/packet-pcnfsd.c b/epan/dissectors/packet-pcnfsd.c index c2289e1002..2c491e5f5c 100644 --- a/epan/dissectors/packet-pcnfsd.c +++ b/epan/dissectors/packet-pcnfsd.c @@ -211,7 +211,10 @@ dissect_pcnfsd2_auth_call(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, } if (ident) { - pcnfsd_decode_obscure(ident, (int)strlen(ident)); + /* Only attempt to decode the ident if it has been specified */ + if (strcmp(ident, RPC_STRING_EMPTY)) + pcnfsd_decode_obscure(ident, (int)strlen(ident)); + if (ident_tree) proto_tree_add_string(ident_tree, hf_pcnfsd_auth_ident_clear, @@ -238,7 +241,10 @@ dissect_pcnfsd2_auth_call(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, } if (password) { - pcnfsd_decode_obscure(password, (int)strlen(password)); + /* Only attempt to decode the password if it has been specified */ + if (strcmp(password, RPC_STRING_EMPTY)) + pcnfsd_decode_obscure(password, (int)strlen(password)); + if (password_tree) proto_tree_add_string(password_tree, hf_pcnfsd_auth_password_clear, diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c index 1426b8f22c..6aa7d88376 100644 --- a/epan/dissectors/packet-rpc.c +++ b/epan/dissectors/packet-rpc.c @@ -626,24 +626,21 @@ dissect_rpc_opaque_data(tvbuff_t *tvb, int offset, char *formatted; formatted = format_text(string_buffer, strlen(string_buffer)); - /* alloc maximum data area */ -#define STRING_BUFFER_PRINT_MAX_LEN ((guint) strlen(formatted)+12+1) - string_buffer_print = (char*)ep_alloc(STRING_BUFFER_PRINT_MAX_LEN); /* copy over the data and append <TRUNCATED> */ - g_snprintf(string_buffer_print, STRING_BUFFER_PRINT_MAX_LEN, "%s<TRUNCATED>", formatted); + string_buffer_print=ep_strdup_printf("%s%s", formatted, RPC_STRING_TRUNCATED); } else { - string_buffer_print="<DATA><TRUNCATED>"; + string_buffer_print=RPC_STRING_DATA RPC_STRING_TRUNCATED; } } else { if (string_data) { string_buffer_print = ep_strdup(format_text(string_buffer, strlen(string_buffer))); } else { - string_buffer_print="<DATA>"; + string_buffer_print=RPC_STRING_DATA; } } } else { - string_buffer_print="<EMPTY>"; + string_buffer_print=RPC_STRING_EMPTY; } if (tree) { diff --git a/epan/dissectors/packet-rpc.h b/epan/dissectors/packet-rpc.h index 471407e545..0deec13f18 100644 --- a/epan/dissectors/packet-rpc.h +++ b/epan/dissectors/packet-rpc.h @@ -93,6 +93,10 @@ #define AUTHDES_NAMEKIND_FULLNAME 0 #define AUTHDES_NAMEKIND_NICKNAME 1 +#define RPC_STRING_EMPTY "<EMPTY>" +#define RPC_STRING_DATA "<DATA>" +#define RPC_STRING_TRUNCATED "<TRUNCATED>" + extern const value_string rpc_authgss_svc[]; typedef enum { FLAVOR_UNKNOWN, /* authentication flavor unknown */ |