summaryrefslogtreecommitdiff
path: root/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'asn1')
-rw-r--r--asn1/ldap/packet-ldap-template.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/asn1/ldap/packet-ldap-template.c b/asn1/ldap/packet-ldap-template.c
index 41778db86b..03d806a314 100644
--- a/asn1/ldap/packet-ldap-template.c
+++ b/asn1/ldap/packet-ldap-template.c
@@ -610,7 +610,7 @@ dissect_ldap_AssertionValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, as
offset=get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
offset=get_ber_length(tvb, offset, &len, &ind);
} else {
- len=tvb_captured_length_remaining(tvb,offset);
+ len=tvb_reported_length_remaining(tvb,offset);
}
if(len==0){
@@ -1444,16 +1444,10 @@ static void dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
itype = tvb_get_letohs(tvb, offset);
offset += 2;
- /* get the version number from the end of the buffer, as the
- length is variable and the version determines what fields
- need to be decoded */
-
- version = tvb_get_letohl(tvb,len-8);
-
switch(itype){
case LOGON_SAM_LOGON_RESPONSE:
- bc = tvb_captured_length_remaining(tvb, offset);
+ bc = tvb_reported_length_remaining(tvb, offset);
/* logon server name */
fn = get_unicode_or_ascii_string(tvb,&offset,TRUE,&fn_len,FALSE,FALSE,&bc);
proto_tree_add_string(tree, hf_mscldap_nb_hostname, tvb,offset, fn_len, fn);
@@ -1469,6 +1463,11 @@ static void dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
proto_tree_add_string(tree, hf_mscldap_nb_domain, tvb,offset, fn_len, fn);
offset +=fn_len;
+ /* get the version number from the end of the buffer, as the
+ length is variable and the version determines what fields
+ need to be decoded */
+ version = tvb_get_letohl(tvb,len-8);
+
/* include the extra version 5 fields */
if ((version & NETLOGON_NT_VERSION_5) == NETLOGON_NT_VERSION_5){
@@ -1557,6 +1556,11 @@ static void dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
offset=dissect_mscldap_string(tvb, offset, str, 255, FALSE);
proto_tree_add_string(tree, hf_mscldap_clientsitename, tvb, old_offset, offset-old_offset, str);
+ /* get the version number from the end of the buffer, as the
+ length is variable and the version determines what fields
+ need to be decoded */
+ version = tvb_get_letohl(tvb,len-8);
+
/* include the extra fields for version 5 with IP s */
if ((version & NETLOGON_NT_VERSION_5EX_WITH_IP) == NETLOGON_NT_VERSION_5EX_WITH_IP){
/* The ip address is returned as a sockaddr_in structure
@@ -1669,7 +1673,7 @@ dissect_ldap_oid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
* proto_tree_add_oid() instead.
*/
- oid=tvb_get_string_enc(wmem_packet_scope(), tvb, 0, tvb_captured_length(tvb), ENC_UTF_8|ENC_NA);
+ oid=tvb_get_string_enc(wmem_packet_scope(), tvb, 0, tvb_reported_length(tvb), ENC_UTF_8|ENC_NA);
if(!oid){
return;
}
@@ -1677,7 +1681,7 @@ dissect_ldap_oid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
oidname=oid_resolved_from_string(oid);
if(oidname){
- proto_tree_add_string_format_value(tree, hf_ldap_oid, tvb, 0, tvb_captured_length(tvb), oid, "%s (%s)",oid,oidname);
+ proto_tree_add_string_format_value(tree, hf_ldap_oid, tvb, 0, tvb_reported_length(tvb), oid, "%s (%s)",oid,oidname);
} else {
proto_tree_add_string(tree, hf_ldap_oid, tvb, 0, tvb_captured_length(tvb), oid);
}
@@ -1724,7 +1728,7 @@ struct access_mask_info ldap_access_mask_info = {
static void
dissect_ldap_nt_sec_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- dissect_nt_sec_desc(tvb, 0, pinfo, tree, NULL, TRUE, tvb_captured_length(tvb), &ldap_access_mask_info);
+ dissect_nt_sec_desc(tvb, 0, pinfo, tree, NULL, TRUE, tvb_reported_length(tvb), &ldap_access_mask_info);
}
static void
@@ -1896,7 +1900,7 @@ this_was_not_normal_ldap:
* It has been seen with Exchange setup to MS AD
* when Exchange pretend that there is SASL but in fact data are still
* in clear*/
- if ((sasl_len + 4) == (guint32)tvb_captured_length_remaining(tvb, 0))
+ if ((sasl_len + 4) == (guint32)tvb_reported_length_remaining(tvb, 0))
tcp_dissect_pdus(tvb, pinfo, tree, ldap_desegment, 4, get_sasl_ldap_pdu_len, dissect_sasl_ldap_pdu, data);
end:
return tvb_captured_length(tvb);