Test whether idx is in range or not (by seeing if it was found in the
value_string) before using it as an index into any of the elem_var arrays.
This fuzz failure was in elem_telv() but apply the fix to all the elem_*()
functions.
svn path=/trunk/; revision=50672
1) Decoding type 70 - End of initialization
2) Decoding qualifier of interrogation for type 100
3) Table of data length for all object types => checking length on one place
4) Setting correct number of selected bytes for IOA
From Jiří Engelthaler
svn path=/trunk/; revision=50664
adds support for the OSD-2 CREATE USER TRACKING COLLECTION service action, following the approach described in bug 8832. It also implements dissection of the CDB continuation segment.
Change in scsi_osd_extra_data_t:
- Add a continuation_length field (we need that value from the CDB when later dissecting the Data In buffer)
The following fields were added:
- hf_scsi_osd2_cdb_continuation_length
- hf_scsi_osd2_cdb_continuation_format
- hf_scsi_osd2_continued_service_action
- hf_scsi_osd2_cdb_continuation_descriptor_type
- hf_scsi_osd2_cdb_continuation_descriptor_pad_length
- hf_scsi_osd2_cdb_continuation_descriptor_length
- hf_scsi_osd2_source_collection_object_id
The following expert_info fields were added:
- ei_osd2_cdb_continuation_format_unknown (PI_UNDECODED, PI_ERROR)
- ei_osd2_continued_service_action_mismatch (PI_PROTOCOL, PI_WARN)
- ei_osd2_cdb_continuation_descriptor_type_unknown (PI_UNDECODED, PI_WARN)
- ei_osd2_cdb_continuation_descriptor_length_invalid (PI_PROTOCOL, PI_ERROR)
- ei_osd2_cdb_continuation_length_invalid (PI_PROTOCOL, PI_ERROR)
The following value_string arrays were added:
- scsi_osd2_cdb_continuation_format_val (OSD2r4 Table 69)
- scsi_osd2_cdb_continuation_descriptor_type_val (OSD2r4 Table 71)
The following functions were added:
- dissect_osd2_cdb_continuation_length (dissect the cdb continuation length field in cdb and save continuation_length in extra_data)
- dissect_osd2_cdb_continuation (dissect the cdb continuation segment from the data out buffer; currently, descriptor-specific fields are not dissected)
- dissect_osd2_create_user_tracking_collection
Changes in dissect_osd_collection_object_id
- add an int hfindex parameter
- the return type was made void (previously it returned int, but the return type was unused)
- this function is used for filling collection_id related fields (there are several flavors of them) and may be modified for displaying creation/removal information (à la dissect_osd_partition_id)
- one call to dissect_osd_requested_collection_object_id was replaced by dissect_osd_collection_object_id(...,hf_scsi_osd_requested_collection_object_id)
- two calls to dissect_osd_collection_object_id were updated with the new signature
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8922
svn path=/trunk/; revision=50605
fix partitions being inadvertently set as removed.
In dissect_osd_get_attributes and dissect_osd_set_attributes there were calls to dissect_osd_partition_id with the last parameter (is_removed) set to TRUE instead of FALSE. That caused dissect_osd_partition_id reporting the partitions as "removed".
The only service action where is_removed must be TRUE is dissect_osd_remove_partition.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8927
svn path=/trunk/; revision=50603
Changed FATTR4_DISSECT_VALUES arg to FATTR4_BITMAP_ONLY in calls to
dissect_nfs4_fattrs() in cases NFS4_OP_OPEN and NFS4_OP_CREATE of
dissect_nfs4_response_op().
svn path=/trunk/; revision=50602
frames; that should be a separate dlsw.capex_type field.
dlsw.error_cause is a numeric field, so it needs a base; the values in
the value_string table are in hex, so show it in hex.
svn path=/trunk/; revision=50589