aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-pcnfsd.c10
-rw-r--r--epan/dissectors/packet-rpc.c11
-rw-r--r--epan/dissectors/packet-rpc.h4
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 */