tvb_new_subset -> tvb_new_subset_remaining it appears that's what the intention is.
Change-Id: I2334bbf3f10475b3c22391392fc8b6864454de2d
Reviewed-on: https://code.wireshark.org/review/1999
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
return end_offset;
}
- next_tvb = tvb_new_subset(tvb,offset,len,len);
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
name_minor = packageandid & 0xffff;
return end_offset;
}
- next_tvb = tvb_new_subset(tvb,offset,len,len);
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
if ( curr_info.par && curr_info.par->dissector) {
curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
return end_offset;
}
- next_tvb = tvb_new_subset(tvb,offset,len,len);
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
if ( curr_info.par && curr_info.par->dissector) {
curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
char *tmpstr;
/* this octet string contains an NT SID */
- sid_tvb=tvb_new_subset(tvb, offset, len, len);
+ sid_tvb=tvb_new_subset_length(tvb, offset, len);
dissect_nt_sid(sid_tvb, 0, tree, "SID", &tmpstr, hf_index);
ldapvalue_string=tmpstr;
}
for (i = 0, offset = 1; i < nb_of_pages; i++) {
length = tvb_get_guint8(warning_msg_seg_tvb, offset+82);
- cb_data_page_tvb = tvb_new_subset(warning_msg_seg_tvb, offset, length, length);
+ cb_data_page_tvb = tvb_new_subset_length(warning_msg_seg_tvb, offset, length);
cb_data_tvb = dissect_cbs_data(dataCodingScheme, cb_data_page_tvb, tree, pinfo, 0);
if (cb_data_tvb) {
str = tvb_get_string_enc(wmem_packet_scope(), cb_data_tvb, 0, tvb_reported_length(cb_data_tvb), ENC_UTF_8|ENC_NA);
header_length = tvb_get_guint8(tvb, 8);
if (header_length > 0) {
int flags = tvb_get_guint8(tvb, 7);
- tvbuff_t *header_data = tvb_new_subset(tvb, offset / 8,
- header_length, header_length);
+ tvbuff_t *header_data = tvb_new_subset_length(tvb, offset / 8,
+ header_length);
dissect_mpeg_pes_header_data(header_data, pinfo, tree, flags);
offset += header_length * 8;
/* length may be zero for Video stream */
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
- arg_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ arg_next_tvb = tvb_new_subset_remaining(tvb, offset);
offset += tvb_length_remaining(tvb, offset);
#.END
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
- res_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ res_next_tvb = tvb_new_subset_remaining(tvb, offset);
offset += tvb_length_remaining(tvb, offset);
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
- err_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ err_next_tvb = tvb_new_subset_remaining(tvb, offset);
offset += tvb_length_remaining(tvb, offset);
#.END
offset = get_ber_identifier(tvb, offset, &appclass, &pc, &tag);
offset = get_ber_length(tvb, offset, &len, NULL);
eoffset = offset + len;
- next_tvb = tvb_new_subset(tvb, hoffset, eoffset - hoffset, eoffset - hoffset);
+ next_tvb = tvb_new_subset_length(tvb, hoffset, eoffset - hoffset);
switch (appclass) {
case BER_CLASS_CON:
switch (tag) {
/* octet 2 - 83 CBS-Message-Information-Page 1 */
cbs_page_item = proto_tree_add_item(subtree, hf_sabp_cb_msg_inf_page, tvb, offset, 82, ENC_BIG_ENDIAN);
cb_inf_msg_len = tvb_get_guint8(tvb,offset+82);
- page_tvb = tvb_new_subset(tvb, offset, cb_inf_msg_len, cb_inf_msg_len);
+ page_tvb = tvb_new_subset_length(tvb, offset, cb_inf_msg_len);
unpacked_tvb = dissect_cbs_data(sms_encoding, page_tvb, subtree, pinfo, 0);
len = tvb_length(unpacked_tvb);
if (unpacked_tvb != NULL){
pt_value = proto_item_add_subtree(pi_value,ett_value);
if (value_len > 0 && oid_string) {
- tvbuff_t* sub_tvb = tvb_new_subset(tvb, value_offset, value_len, value_len);
+ tvbuff_t* sub_tvb = tvb_new_subset_length(tvb, value_offset, value_len);
next_tvb_add_string(&var_list, sub_tvb, (snmp_var_in_tree) ? pt_value : NULL, value_sub_dissectors_table, oid_string);
}
*/
return offset;
}
- pinfo->gssapi_encrypted_tvb = tvb_new_subset(
- tvb, offset, len, len);
+ pinfo->gssapi_encrypted_tvb = tvb_new_subset_length(
+ tvb, offset, len);
}
/* if this is KRB5 wrapped rc4-hmac */
as well ?
*/
if(!pinfo->gssapi_wrap_tvb){
- pinfo->gssapi_wrap_tvb = tvb_new_subset(
+ pinfo->gssapi_wrap_tvb = tvb_new_subset_length(
tvb, start_offset-2,
- GSS_ARCFOUR_WRAP_TOKEN_SIZE,
GSS_ARCFOUR_WRAP_TOKEN_SIZE);
}
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
inner_token_len = tvb_reported_length_remaining(tvb, offset) -
ec;
- pinfo->gssapi_wrap_tvb = tvb_new_subset(tvb, offset,
- inner_token_len, inner_token_len);
+ pinfo->gssapi_wrap_tvb = tvb_new_subset_length(tvb, offset,
+ inner_token_len);
offset += inner_token_len;
as well ?
*/
if(!pinfo->gssapi_wrap_tvb){
- pinfo->gssapi_wrap_tvb = tvb_new_subset(
+ pinfo->gssapi_wrap_tvb = tvb_new_subset_length(
tvb, start_offset-2,
- offset - (start_offset-2),
offset - (start_offset-2));
}
}
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
{
- tvbuff_t *checksum_tvb = tvb_new_subset(tvb, 16, checksum_size, checksum_size);
+ tvbuff_t *checksum_tvb = tvb_new_subset_length(tvb, 16, checksum_size);
if (pinfo->gssapi_data_encrypted) {
if(pinfo->gssapi_encrypted_tvb){
if (len-(2*ind_field)) /*should always be positive unless we get an empty contructor pointless? */
{
- next_tvb = tvb_new_subset(tvb, offset, len-(2*ind_field),
- len-(2*ind_field));
+ next_tvb = tvb_new_subset_length(tvb, offset, len-(2*ind_field));
dissect_tcap_param(actx, subtree,next_tvb,0);
}
if (len) /* check for NULLS */
{
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_ber_octet_string(TRUE, actx, tree, next_tvb, 0,
hf_tcap_data, NULL);
}
comp_offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
comp_offset = dissect_ber_length(actx->pinfo, tree, tvb, comp_offset, &len, &ind_field);
/* we can believe the length now */
-next_tvb = tvb_new_subset(tvb, offset, len+comp_offset-offset, len+comp_offset-offset);
+next_tvb = tvb_new_subset_length(tvb, offset, len+comp_offset-offset);
if (!next_tvb)
return comp_offset;
if ((remaining_bits)!=0)
byte_len++;
- payload_tvb = tvb_new_subset(tvb, pdu_offset, byte_len, byte_len);
+ payload_tvb = tvb_new_subset_length(tvb, pdu_offset, byte_len);
tetra_dissect_pdu(channel_type, TETRA_UPLINK, payload_tvb, tetra_header_tree, pinfo);
if ((remaining_bits)!=0)
if ((remaining_bits)!=0)
byte_len++;
- payload_tvb = tvb_new_subset(tvb, pdu_offset, byte_len, byte_len);
+ payload_tvb = tvb_new_subset_length(tvb, pdu_offset, byte_len);
tetra_dissect_pdu(channel_type, TETRA_DOWNLINK, payload_tvb, tetra_header_tree, pinfo);
pdu_offset += byte_len;
}
if (marker_has_length(marker)) { /* Marker segment */
/* Length of marker segment = 2 + len */
const guint16 len = tvb_get_ntohs(tvb, start_marker + 2);
- tvbuff_t *tmp_tvb = tvb_new_subset(tvb, start_marker, 2 + len, 2 + len);
+ tvbuff_t *tmp_tvb = tvb_new_subset_length(tvb, start_marker, 2 + len);
switch (marker) {
case MARKER_APP0:
process_app0_segment(subtree, tmp_tvb, len, marker, str);
proto_tree_add_item(chunk_tree, &hfi_png_chunk_flag_stc, tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
- chunk_tvb=tvb_new_subset(tvb, offset, len_field, len_field);
+ chunk_tvb=tvb_new_subset_length(tvb, offset, len_field);
switch (type) {
case CHUNK_TYPE_IHDR:
dissect_png_ihdr(chunk_tvb, pinfo, chunk_tree);
}
/* Display the extension header using the data dissector. */
- call_dissector(data_handle, tvb_new_subset(tvb, offset, ext_len, ext_len), pinfo, nhc_tree);
+ call_dissector(data_handle, tvb_new_subset_length(tvb, offset, ext_len), pinfo, nhc_tree);
/* Copy the extension header into the struct. */
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr) + sizeof(struct ip6_ext), offset, ext_len);
/* only dissect it to octetstring */
proto_tree_add_item(tree, hf_a21_gcsna_content, tvb, offset, length, ENC_NA);
if(gcsna_handle){
- new_tvb = tvb_new_subset(tvb, offset, length, length);
+ new_tvb = tvb_new_subset_length(tvb, offset, length);
/* call the dissector with the parent (top)tree */
call_dissector(gcsna_handle, new_tvb, pinfo, a21_tree->parent);
}
#endif
default: i = searchNext(tvb, i+1, n); break;
}
- dissect_a_binary_command(tvb_new_subset(tvb, prev, i-prev, i-prev), pinfo, aasp_tree);
+ dissect_a_binary_command(tvb_new_subset_length(tvb, prev, i-prev), pinfo, aasp_tree);
prev = i;
}
}
switch (command) {
case CMD_DIRECT_TRANSMIT:
if (length > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector_with_data(pn532_handle, next_tvb, pinfo, tree, usb_conv_info);
offset += length;
}
use_status_word = TRUE;
if (tvb_length_remaining(tvb, offset) > 2) {
- next_tvb = tvb_new_subset(tvb, offset, tvb_length_remaining(tvb, offset) - 2, tvb_length_remaining(tvb, offset) - 2);
+ next_tvb = tvb_new_subset_length(tvb, offset, tvb_length_remaining(tvb, offset) - 2);
call_dissector_with_data(pn532_handle, next_tvb, pinfo, tree, usb_conv_info);
offset += tvb_length_remaining(tvb, offset) - 2;
}
/* Dissect lapd payload */
offset += 2 ;
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
call_dissector(lapd_handle, next_tvb, pinfo, tree);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "AC_ISDN");
}
if (tvb_length_remaining(next_tvb, i_offset) >= 4 && tvb_length_remaining(next_tvb, i_offset) >= logcat_length) {
- new_tvb = tvb_new_subset(next_tvb, i_offset, logcat_length, logcat_length);
+ new_tvb = tvb_new_subset_length(next_tvb, i_offset, logcat_length);
call_dissector(logcat_handle, new_tvb, pinfo, main_tree);
i_offset += logcat_length;
} else {
item_query = proto_tree_add_text(tree, tvb, offset, query_length, "filemeta");
sub_tree = proto_item_add_subtree(item_query, ett_afp_spotlight_query_line);
- spotlight_tvb = tvb_new_subset(tvb, offset+8, query_length, query_length);
+ spotlight_tvb = tvb_new_subset_length(tvb, offset+8, query_length);
call_dissector(spotlight_handle, spotlight_tvb, pinfo, sub_tree);
}
break;
"Value");
if (tmp[i].dissector) {
- tmp[i].dissector(ti1, valueid, tvb_new_subset(tvb, offset, length, length), pinfo);
+ tmp[i].dissector(ti1, valueid, tvb_new_subset_length(tvb, offset, length), pinfo);
}
offset += length;
/*
* dissect the embedded teleservice data
*/
- tele_tvb = tvb_new_subset(tvb, offset, len, len);
+ tele_tvb = tvb_new_subset_length(tvb, offset, len);
dissector_try_uint(tele_dissector_table, ansi_637_trans_tele_id, tele_tvb, pinfo, g_tree);
}
/*
* dissect the embedded DTAP message
*/
- l3_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ l3_tvb = tvb_new_subset_length(tvb, curr_offset, len);
call_dissector(dtap_handle, l3_tvb, pinfo, data_p->g_tree);
switch (oct & 0x3f)
{
case ADDS_APP_SMS:
- adds_tvb = tvb_new_subset(tvb, curr_offset, len - 1, len - 1);
+ adds_tvb = tvb_new_subset_length(tvb, curr_offset, len - 1);
dissector_try_uint(is637_dissector_table, 0, adds_tvb, pinfo, data_p->g_tree);
curr_offset += (len - 1);
break;
case ADDS_APP_OTA:
- adds_tvb = tvb_new_subset(tvb, curr_offset, len - 1, len - 1);
+ adds_tvb = tvb_new_subset_length(tvb, curr_offset, len - 1);
dissector_try_uint(is683_dissector_table, data_p->is_reverse, adds_tvb, pinfo, data_p->g_tree);
break;
case ADDS_APP_PDS:
- adds_tvb = tvb_new_subset(tvb, curr_offset, len - 1, len - 1);
+ adds_tvb = tvb_new_subset_length(tvb, curr_offset, len - 1);
dissector_try_uint(is801_dissector_table, data_p->is_reverse, adds_tvb, pinfo, data_p->g_tree);
save_info = col_get_writable(pinfo->cinfo);
col_set_writable(pinfo->cinfo, FALSE);
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
/* XXX: Assumption: OK to call dmx-chan dissector under 'if (tree)' */
call_dissector(dmx_chan_handle, next_tvb, pinfo, base_tree);
while(tvb_reported_length_remaining(error_causes_tvb, offset) > 0) {
length = tvb_get_ntohs(error_causes_tvb, offset + CAUSE_LENGTH_OFFSET);
total_length = ADD_PADDING(length);
- error_cause_tvb = tvb_new_subset(error_causes_tvb, offset , total_length, total_length);
+ error_cause_tvb = tvb_new_subset_length(error_causes_tvb, offset , total_length);
dissect_error_cause(error_cause_tvb, parameter_tree);
offset += total_length;
}
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
dissect_parameter(parameter_tvb, tree);
/* get rid of the handled parameter */
offset += total_length;
/* TODO: Add the rest as captures become available to test. */
default:
- next_tvb = tvb_new_subset(tvb, 8, len, len);
+ next_tvb = tvb_new_subset_length(tvb, 8, len);
call_dissector(data_handle, next_tvb, pinfo, tree);
break;
}
*/
case UPSTREAMFIELD_SERIALNUMBER :
{
- tvbuff_t *sn_tvb = tvb_new_subset (tvb, offset, dataLength, dataLength);
+ tvbuff_t *sn_tvb = tvb_new_subset_length (tvb, offset, dataLength);
dissect_serialnumber (sn_tvb, 0, length, pinfo, upstreamfield_tree, hf_r3_upstreamfieldarray [fieldType]);
}
}
tvb_ensure_bytes_exist (tvb, 0, commandPacketLen - 4);
- upstreamcommand_tvb = tvb_new_subset (tvb, 4, commandPacketLen - 4, commandPacketLen - 4);
+ upstreamcommand_tvb = tvb_new_subset_length (tvb, 4, commandPacketLen - 4);
if (r3upstreamcommand_dissect [upstreamCmd])
(*r3upstreamcommand_dissect [upstreamCmd]) (upstreamcommand_tvb, 0, commandPacketLen - 4, pinfo, upstreamcommand_tree);
}
{
guint8 responseLen = tvb_get_guint8 (tvb, start_offset + 0);
responseType_e responseType = (responseType_e)tvb_get_guint8 (tvb, start_offset + 2);
- tvbuff_t *payload_tvb = tvb_new_subset (tvb, start_offset, responseLen, responseLen);
+ tvbuff_t *payload_tvb = tvb_new_subset_length (tvb, start_offset, responseLen);
if (tree)
{
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
dissect_r3_cmd_manageuser (tvbuff_t *tvb, guint32 start_offset, guint32 length _U_, packet_info *pinfo, proto_tree *tree)
{
guint8 cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- tvbuff_t *payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ tvbuff_t *payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
guint32 offset = 0;
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
guint32 calculatedCRC;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
if (tree)
{
if (tree)
{
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
return;
cmdLen = tvb_get_guint8 (tvb, start_offset + 0);
- payload_tvb = tvb_new_subset (tvb, start_offset + 2, cmdLen - 2, cmdLen - 2);
+ payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2);
proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN);
static void
dissect_r3_cmdmfg_setserialnumber (tvbuff_t *tvb, guint32 start_offset, guint32 length _U_, packet_info *pinfo _U_, proto_tree *tree)
{
- tvbuff_t *sn_tvb = tvb_new_subset (tvb, start_offset + 2, 16, 16);
+ tvbuff_t *sn_tvb = tvb_new_subset_length (tvb, start_offset + 2, 16);
if (tree)
{
ti = proto_tree_add_uint(atm_tree, hf_atm_aal5_crc, tvb, length - 4, 4, crc);
proto_item_append_text(ti, (calc_crc == 0xC704DD7B) ? " (correct)" : " (incorrect)");
}
- next_tvb = tvb_new_subset(tvb, 0, aal5_length, aal5_length);
+ next_tvb = tvb_new_subset_length(tvb, 0, aal5_length);
}
}
}
tap_queue_packet(bat_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->hna_len; i++) {
- next_tvb = tvb_new_subset(tvb, offset, 5, 5);
+ next_tvb = tvb_new_subset_length(tvb, offset, 5);
if (have_tap_listener(bat_follow_tap)) {
tap_queue_packet(bat_follow_tap, pinfo, next_tvb);
length_remaining = tvb_reported_length_remaining(tvb, offset);
for (i = 0; i < length_remaining; i += VIS_PACKET_V22_DATA_SIZE) {
- next_tvb = tvb_new_subset(tvb, offset, VIS_PACKET_V22_DATA_SIZE, VIS_PACKET_V22_DATA_SIZE);
+ next_tvb = tvb_new_subset_length(tvb, offset, VIS_PACKET_V22_DATA_SIZE);
if (have_tap_listener(bat_follow_tap)) {
tap_queue_packet(bat_follow_tap, pinfo, next_tvb);
length_remaining = tvb_reported_length_remaining(tvb, offset);
for (i = 0; i < length_remaining; i += VIS_PACKET_V23_DATA_SIZE) {
- next_tvb = tvb_new_subset(tvb, offset, VIS_PACKET_V23_DATA_SIZE, VIS_PACKET_V23_DATA_SIZE);
+ next_tvb = tvb_new_subset_length(tvb, offset, VIS_PACKET_V23_DATA_SIZE);
if (have_tap_listener(bat_follow_tap)) {
tap_queue_packet(bat_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, 0);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, 0, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, 0);
call_dissector(data_handle, next_tvb, pinfo, tree);
}
break;
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
- next_tvb = tvb_new_subset(tvb, offset, 6, 6);
+ next_tvb = tvb_new_subset_length(tvb, offset, 6);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
- next_tvb = tvb_new_subset(tvb, offset, 6, 6);
+ next_tvb = tvb_new_subset_length(tvb, offset, 6);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
- next_tvb = tvb_new_subset(tvb, offset, 6, 6);
+ next_tvb = tvb_new_subset_length(tvb, offset, 6);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
- next_tvb = tvb_new_subset(tvb, offset, 6, 6);
+ next_tvb = tvb_new_subset_length(tvb, offset, 6);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
- next_tvb = tvb_new_subset(tvb, offset, 6, 6);
+ next_tvb = tvb_new_subset_length(tvb, offset, 6);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->tt_num_changes; i++) {
- next_tvb = tvb_new_subset(tvb, offset, TT_ENTRY_V14_SIZE, TT_ENTRY_V14_SIZE);
+ next_tvb = tvb_new_subset_length(tvb, offset, TT_ENTRY_V14_SIZE);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(data_handle, next_tvb, pinfo, tree);
}
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
}
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(data_handle, next_tvb, pinfo, tree);
}
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(data_handle, next_tvb, pinfo, tree);
}
}
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
}
for (i = 0; i < vis_packeth->entries; i++) {
- next_tvb = tvb_new_subset(tvb, offset, entry_size, entry_size);
+ next_tvb = tvb_new_subset_length(tvb, offset, entry_size);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, vis_packeth);
for (i = 0; i < vis_packeth->entries; i++) {
- next_tvb = tvb_new_subset(tvb, offset, VIS_ENTRY_V8_SIZE, VIS_ENTRY_V8_SIZE);
+ next_tvb = tvb_new_subset_length(tvb, offset, VIS_ENTRY_V8_SIZE);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
tap_queue_packet(batadv_tap, pinfo, vis_packeth);
for (i = 0; i < vis_packeth->entries; i++) {
- next_tvb = tvb_new_subset(tvb, offset, VIS_ENTRY_V8_SIZE, VIS_ENTRY_V8_SIZE);
+ next_tvb = tvb_new_subset_length(tvb, offset, VIS_ENTRY_V8_SIZE);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
if (tt_type == TT_RESPONSE) {
for (i = 0; i < tt_query_packeth->tt_data; i++) {
- next_tvb = tvb_new_subset(tvb, offset, TT_ENTRY_V14_SIZE, TT_ENTRY_V14_SIZE);
+ next_tvb = tvb_new_subset_length(tvb, offset, TT_ENTRY_V14_SIZE);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (length_remaining > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
if (have_tap_listener(batadv_follow_tap)) {
tap_queue_packet(batadv_follow_tap, pinfo, next_tvb);
length_remaining = tvb_length_remaining(tvb, offset);
if (tmp_len > (guint32)length_remaining)
tmp_len = length_remaining;
- next_tvb = tvb_new_subset(tvb, offset, tmp_len, tmp_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, tmp_len);
type(tag_impl, next_tvb, 0, actx, tree, hf_id);
offset += tmp_len;
} else {
if (out_tvb) {
if (len > (guint32)length_remaining)
len = length_remaining;
- *out_tvb = tvb_new_subset(tvb, offset, len, len);
+ *out_tvb = tvb_new_subset_length(tvb, offset, len);
}
}
return end_offset;
/* dissect header and len for field */
if (ind_field && (len == 2)) {
/* This is a Zero length field */
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
hoffset = eoffset;
} else {
hoffset = dissect_ber_identifier(actx->pinfo, tree, tvb, hoffset, NULL, NULL, NULL);
length_remaining = tvb_length_remaining(tvb, hoffset);
if (length_remaining > (eoffset - hoffset - (2 * ind_field)))
length_remaining = eoffset - hoffset - (2 * ind_field);
- next_tvb = tvb_new_subset(tvb, hoffset, length_remaining, length_remaining);
+ next_tvb = tvb_new_subset_length(tvb, hoffset, length_remaining);
}
} else {
length_remaining = tvb_length_remaining(tvb, hoffset);
if (length_remaining > (eoffset - hoffset))
length_remaining = eoffset - hoffset;
- next_tvb = tvb_new_subset(tvb, hoffset, length_remaining, length_remaining);
+ next_tvb = tvb_new_subset_length(tvb, hoffset, length_remaining);
}
#if 0
}
if (value_tvb)
- *value_tvb = tvb_new_subset(tvb, offset, len, len);
+ *value_tvb = tvb_new_subset_length(tvb, offset, len);
return eoffset;
}
length_remaining = tvb_length_remaining(tvb, hoffset);
if (length_remaining>eoffset-hoffset)
length_remaining = eoffset-hoffset;
- next_tvb = tvb_new_subset(tvb, hoffset, length_remaining, length_remaining);
+ next_tvb = tvb_new_subset_length(tvb, hoffset, length_remaining);
imp_tag = FALSE;
if (seq->flags == BER_FLAGS_IMPLTAG)
}
if (out_tvb) {
if (len <= (guint32)tvb_length_remaining(tvb, offset)) {
- *out_tvb = tvb_new_subset(tvb, offset, len, len);
+ *out_tvb = tvb_new_subset_length(tvb, offset, len);
} else {
*out_tvb = tvb_new_subset_remaining(tvb, offset);
}
/* Concatenate the block before being interpreted for managing RFC 3396 */
if (optlen)
- tvb_composite_append(rfc3396_dns_domain_search_list.tvb_composite, tvb_new_subset(tvb, optoff, optlen, optlen));
+ tvb_composite_append(rfc3396_dns_domain_search_list.tvb_composite, tvb_new_subset_length(tvb, optoff, optlen));
if (rfc3396_dns_domain_search_list.index_current_block == rfc3396_dns_domain_search_list.total_number_of_block
&& rfc3396_dns_domain_search_list.tvb_composite) {
/* Concatenate the block before being interpreted for managing RFC 3396 */
if (optlen)
- tvb_composite_append(rfc3396_sip_server.tvb_composite, tvb_new_subset(tvb, optoff, optlen, optlen));
+ tvb_composite_append(rfc3396_sip_server.tvb_composite, tvb_new_subset_length(tvb, optoff, optlen));
if (rfc3396_sip_server.index_current_block == rfc3396_sip_server.total_number_of_block
&& rfc3396_sip_server.tvb_composite) {
{
tvbuff_t *parameter_tvb;
- parameter_tvb = tvb_new_subset(tvb, offset, parameter_length, parameter_length);
+ parameter_tvb = tvb_new_subset_length(tvb, offset, parameter_length);
switch (parameter_type)
{
*/
proto_tree_add_item(ie_tree, hf_bssap_tunnel_prio, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Tunnel payload */
- next_tvb = tvb_new_subset(tvb, offset, ie_len-4, ie_len-4);
+ next_tvb = tvb_new_subset_length(tvb, offset, ie_len-4);
if ((prot_disc == 2)&&(rrlp_handle))
call_dissector(rrlp_handle, next_tvb, pinfo, ie_tree);
/* The IMEI is coded as a sequence of BCD digits, compressed two into each octet.
* The IMEI consists of 15 digits (see 3GPP TS 23.003).
*/
- ie_tvb = tvb_new_subset(tvb, offset, ie_len, ie_len);
+ ie_tvb = tvb_new_subset_length(tvb, offset, ie_len);
digit_str = unpack_digits(ie_tvb, 0, &Dgt1_9_bcd, FALSE);
proto_tree_add_string(ie_tree, hf_bssap_imei, ie_tvb, 0, -1, digit_str);
/* The IMEISV is coded as a sequence of BCD digits, compressed two into each octet.
* The IMEISV consists of 16 digits (see 3GPP TS 23.003).
*/
- ie_tvb = tvb_new_subset(tvb, offset, ie_len, ie_len);
+ ie_tvb = tvb_new_subset_length(tvb, offset, ie_len);
digit_str = unpack_digits(ie_tvb, 0, &Dgt1_9_bcd, FALSE);
proto_tree_add_string(ie_tree, hf_bssap_imeisv, ie_tvb, 0, -1, digit_str);
offset++;
proto_tree_add_item(ie_tree, hf_bssap_plus_ie_len, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- ie_tvb = tvb_new_subset(tvb, offset, ie_len, ie_len);
+ ie_tvb = tvb_new_subset_length(tvb, offset, ie_len);
digit_str = unpack_digits(ie_tvb, 0, &Dgt1_9_bcd, TRUE);
proto_tree_add_string(ie_tree, hf_bssap_imsi, ie_tvb, 0, -1, digit_str);
proto_tree_add_item(ie_tree, hf_bssap_type_of_number, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ie_tree, hf_bssap_numbering_plan_id, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- number_tvb = tvb_new_subset(tvb, offset, ie_len-1, ie_len-1);
+ number_tvb = tvb_new_subset_length(tvb, offset, ie_len-1);
digit_str = unpack_digits(number_tvb, 0, &Dgt1_9_bcd, FALSE);
proto_tree_add_string(ie_tree, hf_bssap_sgsn_number, number_tvb, 0, -1, digit_str);
*/
proto_tree_add_item(ie_tree, hf_bssap_tunnel_prio, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Tunnel payload */
- next_tvb = tvb_new_subset(tvb, offset, ie_len - 4, ie_len - 4);
+ next_tvb = tvb_new_subset_length(tvb, offset, ie_len - 4);
if ((prot_disc == 2)&&(rrlp_handle))
call_dissector(rrlp_handle, next_tvb, pinfo, ie_tree);
proto_tree_add_item(ie_tree, hf_bssap_type_of_number, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ie_tree, hf_bssap_numbering_plan_id, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- number_tvb = tvb_new_subset(tvb, offset, ie_len - 1, ie_len - 1);
+ number_tvb = tvb_new_subset_length(tvb, offset, ie_len - 1);
digit_str = unpack_digits(number_tvb, 0, &Dgt1_9_bcd, FALSE);
proto_tree_add_string(ie_tree, hf_bssap_sgsn_number, number_tvb, 0, -1, digit_str);
curr_offset = offset;
if(len > 0){
- next_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, curr_offset, len);
proto_tree_add_text(tree, tvb, curr_offset, len, "LLC Data");
}
curr_offset = offset;
/* AVP Code: 904 MBMS-Session-Duration Registered by packet-gtp.c */
- new_tvb =tvb_new_subset(tvb, offset, len, len);
+ new_tvb =tvb_new_subset_length(tvb, offset, len);
dissector_try_uint(diameter_3gpp_avp_dissector_table, 904, new_tvb, pinfo, tree);
return(curr_offset-offset);
curr_offset = offset;
/* AVP Code: 903 MBMS-Service-Area Registered by packet-gtp.c */
- new_tvb =tvb_new_subset(tvb, offset, len, len);
+ new_tvb =tvb_new_subset_length(tvb, offset, len);
dissector_try_uint(diameter_3gpp_avp_dissector_table, 903, new_tvb, pinfo, tree);
return(curr_offset-offset);
* as defined in 3GPP TS 36.413
*/
if(len > 0){
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_s1ap_SONtransferApplicationIdentity_PDU(next_tvb, pinfo, tree, NULL);
}
length = tvb_ensure_length_remaining(tvb, offset);
/* reassembling */
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
if (packet_type == PACKET_TYPE_SINGLE) {
if (!dissector_try_uint_new(avctp_service_dissector_table, pid, next_tvb, pinfo, tree, TRUE, avctp_data)) {
call_dissector(data_handle, next_tvb, pinfo, tree);
offset++;
switch (filter_condition_type) {
case 0x01:
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
offset=dissect_bthci_cmd_cod_mask(tvb, offset, pinfo, tree);
break;
case 0x01:
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
offset=dissect_bthci_cmd_cod_mask(tvb, offset, pinfo, tree);
break;
case 0x0024: /* Write Class of Device */
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
break;
proto_tree_add_item(tree, hf_bthci_cmd_fec_required, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
- call_dissector(btcommon_eir_handle, tvb_new_subset(tvb, offset, 240, 240), pinfo, tree);
+ call_dissector(btcommon_eir_handle, tvb_new_subset_length(tvb, offset, 240), pinfo, tree);
save_local_device_name(tvb, offset, pinfo, 240, hci_data);
offset += 240;
break;
proto_tree_add_item(tree, hf_bthci_cmd_le_data_length, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
- call_dissector(btcommon_ad_handle, tvb_new_subset(tvb, offset, 31, 31), pinfo, tree);
+ call_dissector(btcommon_ad_handle, tvb_new_subset_length(tvb, offset, 31), pinfo, tree);
save_local_device_name(tvb, offset, pinfo, 31, hci_data);
offset += 31;
break;
sub_item = proto_tree_add_item(tree, hf_bthci_cmd_le_channel_map, tvb, offset, 5, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_le_channel_map);
- call_dissector(btcommon_le_channel_map_handle, tvb_new_subset(tvb, offset, 5, 5), pinfo, sub_tree);
+ call_dissector(btcommon_le_channel_map_handle, tvb_new_subset_length(tvb, offset, 5), pinfo, sub_tree);
offset += 5;
break;
break;
case 0x0D: /* Class Of Device */
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, entry_tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, entry_tree);
offset += 3;
break;
{
offset = dissect_bthci_evt_bd_addr(tvb, offset, pinfo, tree, NULL);
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
proto_tree_add_item(tree, hf_bthci_evt_link_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
/* reserved byte */
offset += 1;
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
proto_tree_add_item(tree, hf_bthci_evt_clock_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 1;
if (length > 0) {
- call_dissector(btcommon_ad_handle, tvb_new_subset(tvb, offset, length, length), pinfo, tree);
+ call_dissector(btcommon_ad_handle, tvb_new_subset_length(tvb, offset, length), pinfo, tree);
save_remote_device_name(tvb, offset, pinfo, length, bd_addr, hci_data);
offset += length;
}
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
break;
proto_tree_add_item(tree, hf_bthci_evt_fec_required, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
- call_dissector(btcommon_eir_handle, tvb_new_subset(tvb, offset, 240, 240), pinfo, tree);
+ call_dissector(btcommon_eir_handle, tvb_new_subset_length(tvb, offset, 240), pinfo, tree);
offset += 240;
break;
sub_item = proto_tree_add_item(tree, hf_bthci_evt_le_channel_map, tvb, offset, 5, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_le_channel_map);
- call_dissector(btcommon_le_channel_map_handle, tvb_new_subset(tvb, offset, 5, 5), pinfo, sub_tree);
+ call_dissector(btcommon_le_channel_map_handle, tvb_new_subset_length(tvb, offset, 5), pinfo, sub_tree);
offset += 5;
break;
}
proto_tree_add_item(tree, hf_bthci_evt_page_scan_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
- call_dissector(btcommon_cod_handle, tvb_new_subset(tvb, offset, 3, 3), pinfo, tree);
+ call_dissector(btcommon_cod_handle, tvb_new_subset_length(tvb, offset, 3), pinfo, tree);
offset += 3;
proto_tree_add_item(tree, hf_bthci_evt_clock_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
case 0x2f: /* Extended Inquiry Result */
offset = dissect_bthci_evt_inq_result_with_rssi(tvb, offset, pinfo, bthci_evt_tree, bd_addr);
- call_dissector(btcommon_eir_handle, tvb_new_subset(tvb, offset, 240, 240), pinfo, bthci_evt_tree);
+ call_dissector(btcommon_eir_handle, tvb_new_subset_length(tvb, offset, 240), pinfo, bthci_evt_tree);
save_remote_device_name(tvb, offset, pinfo, 240, bd_addr, hci_data);
offset += 240;
offset = dissect_bd_addr(hf_advertising_address, btle_tree, tvb, offset);
if (tvb_length_remaining(tvb, offset) > 3) {
- next_tvb = tvb_new_subset(tvb, offset, tvb_length_remaining(tvb, offset) - 3, tvb_length_remaining(tvb, offset) - 3);
+ next_tvb = tvb_new_subset_length(tvb, offset, tvb_length_remaining(tvb, offset) - 3);
call_dissector(btcommon_ad_handle, next_tvb, pinfo, btle_tree);
}
sub_tree = proto_item_add_subtree(sub_item, ett_scan_response_data);
if (tvb_length_remaining(tvb, offset) > 3) {
- next_tvb = tvb_new_subset(tvb, offset, tvb_length_remaining(tvb, offset) - 3, tvb_length_remaining(tvb, offset) - 3);
+ next_tvb = tvb_new_subset_length(tvb, offset, tvb_length_remaining(tvb, offset) - 3);
call_dissector(btcommon_ad_handle, next_tvb, pinfo, sub_tree);
}
sub_item = proto_tree_add_item(link_layer_data_tree, hf_link_layer_data_channel_map, tvb, offset, 5, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_channel_map);
- call_dissector(btcommon_le_channel_map_handle, tvb_new_subset(tvb, offset, 5, 5), pinfo, sub_tree);
+ call_dissector(btcommon_le_channel_map_handle, tvb_new_subset_length(tvb, offset, 5), pinfo, sub_tree);
offset += 5;
proto_tree_add_item(link_layer_data_tree, hf_link_layer_data_hop, tvb, offset, 1, ENC_LITTLE_ENDIAN);
acl_data->remote_bd_addr_oui = 0;
acl_data->remote_bd_addr_id = 0;
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector_with_data(btl2cap_handle, next_tvb, pinfo, tree, acl_data);
offset += length;
}
sub_item = proto_tree_add_item(btle_tree, hf_control_channel_map, tvb, offset, 5, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_channel_map);
- call_dissector(btcommon_le_channel_map_handle, tvb_new_subset(tvb, offset, 5, 5), pinfo, sub_tree);
+ call_dissector(btcommon_le_channel_map_handle, tvb_new_subset_length(tvb, offset, 5), pinfo, sub_tree);
offset += 5;
proto_tree_add_item(btle_tree, hf_control_instant, tvb, offset, 2, ENC_LITTLE_ENDIAN);
tvbuff_t *next_tvb;
btrfcomm_data_t *rfcomm_data;
- next_tvb = tvb_new_subset(tvb, offset, frame_len, frame_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, frame_len);
rfcomm_data = (btrfcomm_data_t *) wmem_new(wmem_packet_scope(), btrfcomm_data_t);
rfcomm_data->interface_id = l2cap_data->interface_id;
case 0x04: /* CommandAPDU */
/* GSM 11.11 */
if (gsm_sim_cmd_handle && top_dissect != TOP_DISSECT_OFF) {
- next_tvb = tvb_new_subset(tvb, offset, parameter_length, parameter_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, parameter_length);
col_append_str(pinfo->cinfo, COL_INFO, ": ");
if (top_dissect == TOP_DISSECT_INTERNAL) {
case 0x05: /* ResponseAPDU */
/* GSM 11.11 or ISO/IEC 7816-4; depend of TRANSFER_APDU_REQ */
if (gsm_sim_resp_handle && top_dissect != TOP_DISSECT_OFF) {
- next_tvb = tvb_new_subset(tvb, offset, parameter_length, parameter_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, parameter_length);
col_append_str(pinfo->cinfo, COL_INFO, ": ");
if (top_dissect == TOP_DISSECT_INTERNAL) {
case 0x06: /* ATR */
/* ISO/IEC 7816-3 */
if (iso7816_atr_handle && top_dissect != TOP_DISSECT_OFF) {
- next_tvb = tvb_new_subset(tvb, offset, parameter_length, parameter_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, parameter_length);
col_append_str(pinfo->cinfo, COL_INFO, ": ");
if (top_dissect == TOP_DISSECT_INTERNAL) {
case 0x10: /* CommandAPDU7816 */
/* ISO/IEC 7816-4 */
if (gsm_sim_cmd_handle && top_dissect != TOP_DISSECT_OFF) {
- next_tvb = tvb_new_subset(tvb, offset, parameter_length, parameter_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, parameter_length);
col_append_str(pinfo->cinfo, COL_INFO, ": ");
if (top_dissect == TOP_DISSECT_INTERNAL) {
pdu_len = tvb_reported_length_remaining(tvb, offset);
}
}
- next_tvb = tvb_new_subset(tvb, offset, pdu_len, pdu_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, pdu_len);
dissect_bzr_pdu(next_tvb, pinfo, tree);
offset += pdu_len;
}
set to call cpri C&M dissector instead of X.25) */
protocol_handle = find_dissector("lapb");
if ((protocol_handle != NULL) && (tvb_length_remaining(tvb, offset) > 0)) {
- ccpri_tvb = tvb_new_subset(tvb, offset, length, length);
+ ccpri_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector_only(protocol_handle, ccpri_tvb, pinfo, tree, NULL);
}
}
}
if (text_len)
{
- cbs_page_tvb = tvb_new_subset(cbs_page_tvb, 0, text_len, text_len);
+ cbs_page_tvb = tvb_new_subset_length(cbs_page_tvb, 0, text_len);
if (total_pages == 1)
{
/* no need for reassembly */
col_append_str( pinfo->cinfo, COL_INFO, ", ");
- next_tvb = tvb_new_subset(tvb, offset+serv_offset, serv_length, serv_length);
+ next_tvb = tvb_new_subset_length(tvb, offset+serv_offset, serv_length);
if ( mr_mult_req_info )
{
col_append_str( pinfo->cinfo, COL_INFO, ", ");
- next_tvb = tvb_new_subset(tvb, offset+serv_offset, serv_length, serv_length);
+ next_tvb = tvb_new_subset_length(tvb, offset+serv_offset, serv_length);
if ( mr_mult_req_info )
{
mr_single_req_info = mr_mult_req_info->requests + i;
p_add_proto_data(wmem_file_scope(), pinfo, proto_cip, 0, pembedded_req_info );
proto_tree_add_text( item_tree, NULL, 0, 0, "(Service: Unconnected Send (Response))" );
- next_tvb = tvb_new_subset(tvb, offset, item_length, item_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, item_length);
if ( pembedded_req_info && pembedded_req_info->dissector )
call_dissector(pembedded_req_info->dissector, next_tvb, pinfo, item_tree );
else
col_append_str( pinfo->cinfo, COL_INFO, ": ");
- next_tvb = tvb_new_subset(tvb, offset+2+req_path_size+4, msg_req_siz, msg_req_siz);
+ next_tvb = tvb_new_subset_length(tvb, offset+2+req_path_size+4, msg_req_siz);
preq_info = (cip_req_info_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 );
pembedded_req_info = NULL;
if ( preq_info )
if( tvb_length_remaining(tvb, offset) > 0 )
{
/* dissect the Modbus PDU */
- next_tvb = tvb_new_subset( tvb, offset+4+add_stat_size, item_length-4-add_stat_size, item_length-4-add_stat_size);
+ next_tvb = tvb_new_subset_length( tvb, offset+4+add_stat_size, item_length-4-add_stat_size);
/* keep packet context */
request_info = wmem_new(wmem_packet_scope(), modbus_request_info_t);
if( tvb_length_remaining(tvb, offset) > 0 )
{
/* dissect the Modbus PDU */
- next_tvb = tvb_new_subset( tvb, offset+2+req_path_size, item_length-req_path_size-2, item_length-req_path_size-2);
+ next_tvb = tvb_new_subset_length( tvb, offset+2+req_path_size, item_length-req_path_size-2);
/* keep packet context */
request_info = wmem_new(wmem_packet_scope(), modbus_request_info_t);
proto_item_set_len(ti, 16);
if (length > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
if ((msg_type == PDU_MTP3_TO_SLT || msg_type == PDU_MTP3_FROM_SLT)) {
call_dissector(q931_handle, next_tvb, pinfo, tree);
/* This should be the EISUP dissector but we havent got one
* right now - so decode it as data for now ... */
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(data_handle, next_tvb, pinfo, sm_tree);
break;
proto_tree_add_item(sm_tree, hf_sm_len, tvb, offset, 2, ENC_BIG_ENDIAN);
length = tvb_get_ntohs(tvb,offset);
offset = offset +2;
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(sdp_handle, next_tvb, pinfo, sm_tree);
/*offset = offset+length;*/
proto_tree_add_item(sm_tree, hf_sm_len, tvb, offset, 2, ENC_BIG_ENDIAN);
length = tvb_get_ntohs(tvb,offset);
offset = offset +2;
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(sdp_handle, next_tvb, pinfo, sm_tree);
/*offset = offset+length;*/
proto_item_set_len(ti, 16);
if (length > 0) {
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
switch (msg_type) {
case PDU_MTP3_TO_SLT:
proto_tree_add_item(cwids_tree, hf_cwids_unknown3, tvb, offset, 8, ENC_NA);
offset += 8;
- wlan_tvb = tvb_new_subset(tvb, offset, capturelen, capturelen);
+ wlan_tvb = tvb_new_subset_length(tvb, offset, capturelen);
/* Continue after ieee80211 dissection errors */
pd_save = pinfo->private_data;
TRY {
pinfo->private_data = pd_save;
#if 0
- wlan_tvb = tvb_new_subset(tvb, offset, capturelen, capturelen);
+ wlan_tvb = tvb_new_subset_length(tvb, offset, capturelen);
/* FIXME: Why does this throw an exception? */
proto_tree_add_text(cwids_tree, wlan_tvb, offset, capturelen,
"[Malformed or short IEEE80211 subpacket]");
#else
- tvb_new_subset(tvb, offset, capturelen, capturelen);
+ tvb_new_subset_length(tvb, offset, capturelen);
#endif
;
} ENDTRY;
payload_tree = proto_item_add_subtree(payload_item, ett_coap_payload);
proto_tree_add_string(payload_tree, hf_coap_payload_desc, tvb, offset, -1, coap_ctype_str);
- payload_tvb = tvb_new_subset(tvb, offset, payload_length, payload_length);
+ payload_tvb = tvb_new_subset_length(tvb, offset, payload_length);
if (coap_ctype_value == DEFAULT_COAP_CTYPE_VALUE || coap_ctype_value == 0) {
coap_ctype_str_dis = "text/plain";
/* dissect the message */
/* extract and process the header */
- header_tvb = tvb_new_subset(message_tvb, 0, 8, 8);
+ header_tvb = tvb_new_subset_length(message_tvb, 0, 8);
dissect_cpfi_header(header_tvb, pinfo, cpfi_tree);
body_tvb = tvb_new_subset(message_tvb, 8, body_length, reported_body_length);
case dacp_cmst:
/* Container tags */
new_tree = proto_item_add_subtree(ti, ett_daap_sub);
- new_tvb = tvb_new_subset(tvb, offset, len, len); /* Use a new tvb so bounds checking */
+ new_tvb = tvb_new_subset_length(tvb, offset, len); /* Use a new tvb so bounds checking */
/* works Ok when dissecting container. */
/* Note: len is within tvb; checked above. */
/* len (see above) is used so that we'll */
if (opvalue == OP_CERT) {
/* X509 Certificate */
- tvbuff_t *cert_tvb = tvb_new_subset (tvb, offset+10, length-10, length-10);
+ tvbuff_t *cert_tvb = tvb_new_subset_length (tvb, offset+10, length-10);
dissect_x509af_Certificate_PDU (cert_tvb, pinfo, db_lsp_tree);
} else {
proto_tree_add_item (db_lsp_tree, hf_value, tvb, offset, length, ENC_NA);
diam_sub_dis_inf->vendor_id = tvb_get_ntohl(tvb,offset);
}
- subtvb = tvb_new_subset(tvb,offset,len-(8+(vendor_flag?4:0)),len-(8+(vendor_flag?4:0)));
+ subtvb = tvb_new_subset_length(tvb,offset,len-(8+(vendor_flag?4:0)));
offset += len-(8+(vendor_flag?4:0));
save_tree = c->tree;
}
if (type == ASN1_BER) {
- tvbuff_t *next_tvb = tvb_new_subset(tvb, offset, length, length);
+ tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset, length);
dissect_p1_ORName (FALSE, next_tvb, 0, &asn1_ctx, ext_tree,
hf_addr_ext_asn1_ber);
* the SMB dissector does in some cases, and check
* whether the security blob begins with "NTLMSSP".
*/
- gssapi_tvb = tvb_new_subset(
- tvb, cur_offset, tkey_keylen, tkey_keylen);
+ gssapi_tvb = tvb_new_subset_length(
+ tvb, cur_offset, tkey_keylen);
if (tvb_strneql(gssapi_tvb, 0, "NTLMSSP", 7) == 0) {
call_dissector(ntlmssp_handle, gssapi_tvb, pinfo, key_tree);
} else {
mac_item = proto_tree_add_item(rr_tree, hf_dns_tsig_mac, tvb, cur_offset, tsig_siglen, ENC_NA);
mac_tree = proto_item_add_subtree(mac_item, ett_dns_mac);
- sub_tvb=tvb_new_subset(tvb, cur_offset, tsig_siglen, tsig_siglen);
+ sub_tvb=tvb_new_subset_length(tvb, cur_offset, tsig_siglen);
if (!dissector_try_string(dns_tsig_dissector_table, tsig_algname, sub_tvb, pinfo, mac_tree, NULL)) {
expert_add_info_format(pinfo, mac_item, &ei_dns_tsig_alg,
case FRAME_TYPE_UI_EVEN:
case FRAME_TYPE_UI_ODD:
protocol_data_length=tvb_length(tvb)-LINK_HEADER_SIZE;
- protocol_data_tvb=tvb_new_subset(tvb, LINK_HEADER_SIZE,
- protocol_data_length,
+ protocol_data_tvb=tvb_new_subset_length(tvb, LINK_HEADER_SIZE,
protocol_data_length);
if (dpnss_handle && protocol_data_length>0) {
call_dissector(dpnss_handle, protocol_data_tvb, pinfo, tree);
{
/* Extract SQL statement from packet */
tvbuff_t* next_tvb = NULL;
- next_tvb = tvb_new_subset(tvb, offset + 4, iLengthParam - 4, iLengthParam - 4);
+ next_tvb = tvb_new_subset_length(tvb, offset + 4, iLengthParam - 4);
add_new_data_source(pinfo, next_tvb, "SQL statement");
proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement, next_tvb, 0, iLengthParam - 5, ENC_UTF_8|ENC_NA);
proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement_ebcdic, next_tvb, 0, iLengthParam - 4, ENC_EBCDIC|ENC_NA);
}
else
{
- sub_tvb = tvb_new_subset(tvb, offset, fragment_length,
- fragment_length);
+ sub_tvb = tvb_new_subset_length(tvb, offset, fragment_length);
}
/* now dissect the handshake message, if necessary */
tvbuff_t *protocol_data_tvb;
protocol_data_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- protocol_data_tvb = tvb_new_subset(parameter_tvb, PROTOCOL_DATA_OFFSET, protocol_data_length, protocol_data_length);
+ protocol_data_tvb = tvb_new_subset_length(parameter_tvb, PROTOCOL_DATA_OFFSET, protocol_data_length);
if(dpnss_handle){
call_dissector(dpnss_handle, protocol_data_tvb, pinfo, tree);
return;
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
dissect_parameter(parameter_tvb, pinfo, tree, dua_tree);
/* get rid of the handled parameter */
offset += total_length;
{
tvbuff_t *common_header_tvb, *parameters_tvb;
- common_header_tvb = tvb_new_subset(message_tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(message_tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH);
parameters_tvb = tvb_new_subset_remaining(message_tvb, PARAMETERS_OFFSET);
dissect_common_header(common_header_tvb, pinfo, dua_tree);
dissect_parameters(parameters_tvb, pinfo, tree, dua_tree);
/* Parse the DMC-CC private section header */
- mac_bytes_tvb[5] = tvb_new_subset(tvb, offset, 1, 1);
+ mac_bytes_tvb[5] = tvb_new_subset_length(tvb, offset, 1);
offset += 1;
- mac_bytes_tvb[4] = tvb_new_subset(tvb, offset, 1, 1);
+ mac_bytes_tvb[4] = tvb_new_subset_length(tvb, offset, 1);
offset += 1;
proto_tree_add_item(dvb_data_mpe_tree, hf_dvb_data_mpe_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
for (i = 3; i >= 0; i--) {
- mac_bytes_tvb[i] = tvb_new_subset(tvb, offset, 1, 1);
+ mac_bytes_tvb[i] = tvb_new_subset_length(tvb, offset, 1);
offset += 1;
}
suffix_lo = wmem_ascii_strdown(wmem_packet_scope(),
&file_name_str[file_name_len-4], -1);
if (g_strcmp0(suffix_lo, ".png")==0) {
- png_file_tvb = tvb_new_subset(
- tvb, offset, file_data_len, file_data_len);
+ png_file_tvb = tvb_new_subset_length(
+ tvb, offset, file_data_len);
}
}
msg_len = tvb_reported_length_remaining(tvb, offset);
if (msg_len<=0)
break;
- msg_tvb = tvb_new_subset(tvb, offset, msg_len, msg_len);
+ msg_tvb = tvb_new_subset_remaining(tvb, offset);
if (!msg_tvb)
break;
if (dvbci_dissect_lsc_msg && circuit && circuit->dissector_handle) {
if (nit_loop_len==0)
break;
offset += 2;
- nit_loop_tvb = tvb_new_subset(
- tvb, offset, nit_loop_len, nit_loop_len);
+ nit_loop_tvb = tvb_new_subset_length(
+ tvb, offset, nit_loop_len);
nit_loop_offset = 0;
if (!dvb_nit_handle) {
call_dissector(data_handle, nit_loop_tvb, pinfo, tree);
proto_tree_add_item(tree, hf_dvbci_sas_msg_len,
tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- msg_tvb = tvb_new_subset(tvb, offset, msg_len, msg_len);
+ msg_tvb = tvb_new_subset_length(tvb, offset, msg_len);
msg_handle = (circuit && circuit->dissector_handle) ?
circuit->dissector_handle : data_handle;
call_dissector(msg_handle, msg_tvb, pinfo, tree);
guint16 ssnb = 0; /* session numbers start with 1, 0 is invalid */
guint8 sess_stat;
tvbuff_t *payload_tvb = NULL;
- gint payload_len;
spdu_len = tvb_reported_length(tvb);
proto_tree_add_item(
sess_tree, hf_dvbci_sess_nb, tvb,
offset, 2, ENC_BIG_ENDIAN);
- payload_len = tvb_reported_length_remaining(tvb, offset+2);
payload_tvb =
- tvb_new_subset(tvb, offset+2, payload_len, payload_len);
+ tvb_new_subset_remaining(tvb, offset+2);
break;
default:
break;
the reassembled bodies as expected
to work around this issue, we use a dedicated body_tvb as
input to reassembly routines */
- body_tvb = tvb_new_subset(tvb, offset, body_len, body_len);
+ body_tvb = tvb_new_subset_length(tvb, offset, body_len);
/* dissect_dvbci_tpdu_hdr() checked that lpdu_tcid==t_c_id */
frag_msg = fragment_add_seq_next(&spdu_reassembly_table,
body_tvb, 0, pinfo, SPDU_SEQ_ID_BASE+lpdu_tcid, NULL,
tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
- tpl_data_tvb = tvb_new_subset(tvb, offset, len_field, len_field);
+ tpl_data_tvb = tvb_new_subset_length(tvb, offset, len_field);
switch (tpl_code) {
case CISTPL_VERS_1:
dissect_dvbci_cis_payload_tpll_v1(
header_length += XDLC_CONTROL_LEN(control, is_extended);
if (XDLC_IS_INFORMATION(control)) {
- next_tvb = tvb_new_subset(tvb, offset+header_length,
- len-header_length, len-header_length);
+ next_tvb = tvb_new_subset_length(tvb, offset+header_length,
+ len-header_length);
switch (msg_type) {
case 0x20:
* XML. If it "looks like" XML (begins with optional white-space
* followed by a '<'), try XML. Otherwise, try plain-text.
*/
- xml_tvb = tvb_new_subset(sub_tvb, sub_offset, length, length);
+ xml_tvb = tvb_new_subset_length(sub_tvb, sub_offset, length);
test_string = tvb_get_string(wmem_packet_scope(), xml_tvb, 0, (length < 32 ?
length : 32));
tok = strtok(test_string, " \t\r\n");
offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- payload = tvb_new_subset(tvb, offset, tmp-4, tmp-4);
+ payload = tvb_new_subset_length(tvb, offset, tmp-4);
call_dissector(data_handle, payload, pinfo, sub_tree);
return (3+tmp);
save_info = col_get_writable(pinfo->cinfo);
col_set_writable(pinfo->cinfo, FALSE);
- next_tvb = tvb_new_subset(tvb, offset+7, 28, 28);
+ next_tvb = tvb_new_subset_length(tvb, offset+7, 28);
call_dissector(arp_handle, next_tvb, pinfo, tree);
col_set_writable(pinfo->cinfo, save_info);
}
/* Call dissector for interface */
- next_tvb = tvb_new_subset( tvb, offset+6, item_length, item_length );
+ next_tvb = tvb_new_subset_length( tvb, offset+6, item_length);
p_add_proto_data(wmem_file_scope(), pinfo, proto_enip, ENIP_REQUEST_INFO, request_info);
if ( tvb_length_remaining(next_tvb, 0) <= 0 || !dissector_try_uint(subdissector_srrd_table, ifacehndl, next_tvb, pinfo, dissector_tree) )
{
proto_tree_add_item( item_tree, hf_enip_cpf_cdi_seqcnt, tvb, offset+6, 2, ENC_LITTLE_ENDIAN );
/* Call dissector for interface */
- next_tvb = tvb_new_subset (tvb, offset+8, item_length-2, item_length-2);
+ next_tvb = tvb_new_subset_length (tvb, offset+8, item_length-2);
p_add_proto_data(wmem_file_scope(), pinfo, proto_enip, ENIP_REQUEST_INFO, request_info);
if ( tvb_length_remaining(next_tvb, 0) <= 0 || !dissector_try_uint(subdissector_sud_table, ifacehndl, next_tvb, pinfo, dissector_tree) )
{
/* Display data */
if (tvb_length_remaining(tvb, offset+6) > 0)
{
- next_tvb = tvb_new_subset(tvb, offset+6, item_length, item_length);
+ next_tvb = tvb_new_subset_length(tvb, offset+6, item_length);
if (conn_info != NULL)
{
if (conn_info->safety.safety_seg == TRUE)
while(tvb_reported_length_remaining(error_causes_tvb, offset) > 0) {
length = tvb_get_ntohs(error_causes_tvb, offset + CAUSE_LENGTH_OFFSET);
total_length = ADD_PADDING(length);
- error_cause_tvb = tvb_new_subset(error_causes_tvb, offset , total_length, total_length);
+ error_cause_tvb = tvb_new_subset_length(error_causes_tvb, offset, total_length);
dissect_error_cause(error_cause_tvb, parameter_tree);
offset += total_length;
}
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
dissect_parameter(parameter_tvb, tree);
/* get rid of the handled parameter */
offset += total_length;
de_cld_party_bcd_num(tvb, elem_tree, pinfo, pos, len, NULL, 0);
break;
case 0x0b: /* sms tpdu */
- new_tvb = tvb_new_subset(tvb, pos, len, len);
+ new_tvb = tvb_new_subset_length(tvb, pos, len);
if (new_tvb) {
int p2p_dir_save = pinfo->p2p_dir;
if (data) {
}
offset += 1;
- sub_tvb = tvb_new_subset(tvb, offset, sect_len-7, sect_len-7);
+ sub_tvb = tvb_new_subset_length(tvb, offset, sect_len-7);
call_dissector(dsmcc_handle, sub_tvb, pinfo, tree);
sect_len += 3 - 4; /* add header, remove crc */
proto_item *it = NULL;
proto_tree *fcsof_tree = NULL;
- gint bytes_remaining;
tvbuff_t *next_tvb, *checksum_tvb;
guint32 sof = 0;
guint32 crc = 0;
/* GET Computed CRC */
frame_len_for_checksum = crc_offset - FCSOF_HEADER_LEN;
- checksum_tvb = tvb_new_subset(tvb, 4, frame_len_for_checksum, frame_len_for_checksum);
+ checksum_tvb = tvb_new_subset_length(tvb, 4, frame_len_for_checksum);
crc_computed = crc32_802_tvb(checksum_tvb, frame_len_for_checksum);
/* Get EOF */
proto_tree_add_uint(fcsof_tree, hf_fceof, tvb, eof_offset, 4, eof);
- bytes_remaining = tvb_length_remaining(tvb, 4);
- next_tvb = tvb_new_subset(tvb, 4, bytes_remaining, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, 4);
fc_data.ethertype = 0;
fc_data.sof_eof = 0;
itl.cmdset = 0xff;
itl.conversation = conversation;
- cdb_tvb = tvb_new_subset(tvb, offset+12, tvb_len, tvb_rlen);
+ cdb_tvb = tvb_new_subset_length(tvb, offset+12, tvb_len);
dissect_scsi_cdb(cdb_tvb, pinfo, parent_tree, SCSI_DEV_UNKNOWN, request_data->itlq, &itl);
proto_tree_add_item(tree, hf_fcp_dl, tvb, offset+12+16+add_len,
col_add_fstr(pinfo->cinfo, COL_INFO,
"FlowID %s", val_to_str(basic_hdr_flow_id, NULL, "0x%08x"));
- flip_tvb = tvb_new_subset(tvb, 0, frame_len, frame_len);
+ flip_tvb = tvb_new_subset_length(tvb, 0, frame_len);
/* We are asked for details. */
if (tree) {
computed_chksum = g_htons(computed_chksum);
}
- chksum_tvb = tvb_new_subset(flip_tvb, offset,
- FLIP_CHKSUM_HDR_LEN,
+ chksum_tvb = tvb_new_subset_length(flip_tvb, offset,
FLIP_CHKSUM_HDR_LEN);
/* Note that flip_tree is NULL if no details are requested. */
has_user_messed_up = FALSE;
- payload_tvb = tvb_new_subset(flip_tvb, offset,
- payload_len, payload_len);
+ payload_tvb = tvb_new_subset_length(flip_tvb, offset,
+ payload_len);
/*
* 1) no decoding -> data
{
tvbuff_t *next_tvb;
- next_tvb = tvb_new_subset(tvb, offset+4, length_redirect-TLV_TL_LENGTH, length_redirect-TLV_TL_LENGTH);
+ next_tvb = tvb_new_subset_length(tvb, offset+4, length_redirect-TLV_TL_LENGTH);
call_dissector(ip_handle, next_tvb, pinfo, redirect_data_tree);
/* Restore IP info */
if (tvb_bytes_exist(tvb, offset, 2)) {
offset += 2;
packet_len = offset-offset_start;
- packet_tvb = tvb_new_subset(tvb, offset_start,
- packet_len, packet_len);
+ packet_tvb = tvb_new_subset_length(tvb, offset_start,
+ packet_len);
}
}
dissect_nt_sid(tvb, old_offset+4+sid_offset, tree, "sid", NULL, -1);
/* certificate */
- next_tvb = tvb_new_subset(tvb, old_offset+4+cert_offset, cert_length, cert_length);
+ next_tvb = tvb_new_subset_length(tvb, old_offset+4+cert_offset, cert_length);
(void)dissect_x509af_Certificate(FALSE, next_tvb, 0, &asn1_ctx, tree, hf_gpef_efskey_certificate);
if (xid_param_len) {
- sndcp_xid_tvb = tvb_new_subset (tvb, location+sndcp_xid_offset, xid_param_len, xid_param_len);
+ sndcp_xid_tvb = tvb_new_subset_length (tvb, location+sndcp_xid_offset, xid_param_len);
if(sndcp_xid_handle)
{
if (tree)
{
tvbuff_t *xid_tvb;
- xid_tvb = tvb_new_subset (tvb, offset, info_len, info_len);
+ xid_tvb = tvb_new_subset_length (tvb, offset, info_len);
llc_gprs_dissect_xid(xid_tvb, pinfo, llcgprs_tree);
}
if (tree)
{
tvbuff_t *xid_tvb;
- xid_tvb = tvb_new_subset (tvb, offset, info_len, info_len);
+ xid_tvb = tvb_new_subset_length (tvb, offset, info_len);
llc_gprs_dissect_xid(xid_tvb, pinfo, llcgprs_tree);
}
/*
* dissect the embedded DTAP message
*/
- l3_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ l3_tvb = tvb_new_subset_length(tvb, curr_offset, len);
/* This information element carries a radio interface message.
In the case of an Intersystem handover to UMTS,
/*
* dissect the embedded DTAP message
*/
- l3_tvb = tvb_new_subset(tvb, offset, len, len);
+ l3_tvb = tvb_new_subset_length(tvb, offset, len);
/* Octet j (j = 3, 4, ..., n) is the unchanged octet j of a radio interface layer 3 message
* as defined in 3GPP TS 24.008, n is equal to the length of that radio interface layer 3 message. */
curr_offset = offset;
- data_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ data_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_geographical_description(data_tvb, pinfo, tree);
return(len);
/* BSSLAP
* the embedded message is as defined in 3GPP TS 08.71(3GPP TS 48.071 version 7.2.0 Release 7)
*/
- APDU_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ APDU_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (gsm_bsslap_handle)
call_dissector(gsm_bsslap_handle, APDU_tvb, pinfo, g_tree);
break;
* the Source RNC to Target RNC Transparent Container IE as defined in relevant
* RANAP specification 3GPP TS 25.413, excluding RANAP tag
*/
- container_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ container_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(container_tvb, pinfo, tree, NULL);
return(len);
{
tvbuff_t *new_tvb;
- new_tvb = tvb_new_subset(tvb, offset, len, len);
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
if (new_tvb) {
dissect_ranap_InterSystemInformation_TransparentContainer_PDU(new_tvb, pinfo, tree, NULL);
{
tvbuff_t *new_tvb;
- new_tvb = tvb_new_subset(tvb, offset, len, len);
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
if (new_tvb) {
dissect_gsm_map_msisdn(new_tvb, pinfo , tree);
}
tvbuff_t *container_tvb;
/* Octets 3-n are encoded as Inter RAT Handover Info as defined in 3GPP TS 25.331 */
- container_tvb = tvb_new_subset(tvb, offset, len, len);
+ container_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_rrc_InterRATHandoverInfo_PDU(container_tvb, pinfo, tree, NULL);
return len;
dissect_ROS_Component(FALSE, tvb, offset, &asn1_ctx, tree, hf_ROS_component);
TODO Call gsm map here
*/
- SS_tvb = tvb_new_subset(tvb, offset, component_len, component_len);
+ SS_tvb = tvb_new_subset_length(tvb, offset, component_len);
col_append_str(pinfo->cinfo, COL_INFO,"(GSM MAP) ");
col_set_fence(pinfo->cinfo, COL_INFO);
call_dissector(gsm_map_handle, SS_tvb, pinfo, tree);
/*
* dissect the embedded RP message
*/
- rp_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ rp_tvb = tvb_new_subset_length(tvb, curr_offset, len);
call_dissector(rp_handle, rp_tvb, pinfo, g_tree);
/* The value part of the Inter RAT information container information element is the INTER RAT HANDOVER INFO as
defined in 3GPP TS 25.331 [23c]. If this field includes padding bits, they are defined in 3GPP TS 25.331 [23c].*/
- rrc_irat_ho_info_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ rrc_irat_ho_info_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (rrc_irat_ho_info_handle)
call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, pinfo, tree);
else
/* The value part of the E-UTRAN inter RAT information container information element
is formatted and coded according to the UE-EUTRA-Capability IE defined in 3GPP TS 36.331 [129]*/
- lte_rrc_ue_eutra_cap_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ lte_rrc_ue_eutra_cap_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (lte_rrc_ue_eutra_cap_handle)
call_dissector(lte_rrc_ue_eutra_cap_handle, lte_rrc_ue_eutra_cap_tvb, pinfo, tree);
else
} else {
dissector_handle_t handle;
handle = dissector_get_uint_handle (gprs_sm_pco_subdissector_table, prot);
+ l3_tvb = tvb_new_subset_length(tvb, curr_offset, e_len);
if (handle != NULL)
{
/*
* dissect the embedded message
*/
- l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
/* In this case we do not want the columns updated */
col_set_writable(pinfo->cinfo, FALSE);
call_dissector(handle, l3_tvb, pinfo, pco_tree);
/*
* dissect the embedded DATA message
*/
- l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
call_dissector(data_handle, l3_tvb, pinfo, pco_tree);
}
}
/*
* dissect the embedded TPDU message
*/
- tpdu_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ tpdu_tvb = tvb_new_subset_length(tvb, curr_offset, len);
call_dissector_only(gsm_sms_handle, tpdu_tvb, pinfo, g_tree, NULL);
curr_offset = offset;
if (len)
{
- rrc_irat_ho_info_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ rrc_irat_ho_info_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (rrc_irat_ho_info_handle)
call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, pinfo, tree);
}
{
tvbuff_t *sub_tvb;
- sub_tvb = tvb_new_subset(tvb, offset, len, len);
+ sub_tvb = tvb_new_subset_length(tvb, offset, len);
if (rrlp_dissector)
call_dissector(rrlp_dissector, sub_tvb,pinfo, tree);
curr_offset = offset;
if (len)
{
- rrc_irat_ho_to_utran_cmd_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ rrc_irat_ho_to_utran_cmd_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (rrc_irat_ho_to_utran_cmd_handle)
call_dissector(rrc_irat_ho_to_utran_cmd_handle, rrc_irat_ho_to_utran_cmd_tvb, pinfo, tree);
}
offset+1, len_len, len);
offset += hlen;
- sub_tvb = tvb_new_subset(tvb, offset, len, len);
+ sub_tvb = tvb_new_subset_length(tvb, offset, len);
switch (tag) {
/* parse only the most common IE for now */
* putting all of that into an external dissector and
* call out to that dissector */
tvbuff_t *subtvb;
- subtvb = tvb_new_subset(tvb, offset, len, len);
+ subtvb = tvb_new_subset_length(tvb, offset, len);
if (sub_om2000)
call_dissector(sub_om2000, subtvb, pinfo, tree);
curr_offset = offset + 2;
if (length > 0)
{
- rrlp_tvb = tvb_new_subset(tvb, curr_offset, length, length);
+ rrlp_tvb = tvb_new_subset_length(tvb, curr_offset, length);
if (bsslap_rrlp_handle)
call_dissector(bsslap_rrlp_handle, rrlp_tvb, pinfo, tree);
}
/* BSSLAP
* the embedded message is as defined in 3GPP TS 08.71(3GPP TS 48.071 version 7.2.0 Release 7)
*/
- APDU_tvb = tvb_new_subset(tvb, curr_offset+1, len-1, len-1);
+ APDU_tvb = tvb_new_subset_length(tvb, curr_offset+1, len-1);
if(gsm_bsslap_handle)
call_dissector(gsm_bsslap_handle, APDU_tvb, pinfo, g_tree);
break;
curr_offset = offset;
- data_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ data_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_geographical_description(data_tvb, pinfo, tree);
return(len);
tvb, offset+2, 1, ENC_BIG_ENDIAN);
}
- next_tvb = tvb_new_subset(tvb, offset+header_length, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset+header_length, len);
switch (msg_type) {
case ABISIP_OML:
i, li);
}
subtree = proto_item_add_subtree(ti, ett_data_segments);
- data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
+ data_tvb = tvb_new_subset_length(tvb, octet_offset, octet_length - octet_offset);
call_dissector(data_handle, data_tvb, pinfo, subtree);
octet_offset = octet_length;
break;
"data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
i, li, li);
subtree = proto_item_add_subtree(ti, ett_data_segments);
- data_tvb = tvb_new_subset(tvb, octet_offset, li, li);
+ data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
call_dissector(data_handle, data_tvb, pinfo, subtree);
octet_offset += li;
break;
ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset, "Padding Octets");
}
subtree = proto_item_add_subtree(ti, ett_data_segments);
- data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
+ data_tvb = tvb_new_subset_length(tvb, octet_offset, octet_length - octet_offset);
call_dissector(data_handle, data_tvb, pinfo, subtree);
octet_offset = octet_length;
}
i, li);
}
subtree = proto_item_add_subtree(ti, ett_data_segments);
- data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
+ data_tvb = tvb_new_subset_length(tvb, octet_offset, octet_length - octet_offset);
call_dissector(data_handle, data_tvb, pinfo, subtree);
octet_offset = octet_length;
break;
"data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
i, li, li);
subtree = proto_item_add_subtree(ti, ett_data_segments);
- data_tvb = tvb_new_subset(tvb, octet_offset, li, li);
+ data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
call_dissector(data_handle, data_tvb, pinfo, subtree);
octet_offset += li;
break;
ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset,
"data segment: LI not present: \n The Upper Layer PDU in the current RLC data block either fills the current RLC data block precisely \nor continues in the following in-sequence RLC data block");
subtree = proto_item_add_subtree(ti, ett_data_segments);
- data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
+ data_tvb = tvb_new_subset_length(tvb, octet_offset, octet_length - octet_offset);
call_dissector(data_handle, data_tvb, pinfo, subtree);
octet_offset = octet_length;
}
break;
}
- subtvb = tvb_new_subset(tvb, pos, len, len);
+ subtvb = tvb_new_subset_length(tvb, pos, len);
switch (tag) {
case 0xD0: /* proactive command */
case 0xD1: /* sms-pp download */
case 0x12: /* FETCH */
proto_tree_add_item(tree, hf_le, tvb, offset+P3_OFFS, 1, ENC_BIG_ENDIAN);
if (isSIMtrace) {
- subtvb = tvb_new_subset(tvb, offset+DATA_OFFS, p3, p3);
+ subtvb = tvb_new_subset_length(tvb, offset+DATA_OFFS, p3);
dissect_bertlv(subtvb, pinfo, tree);
}
break;
case 0x14: /* TERMINAL RESPONSE */
- subtvb = tvb_new_subset(tvb, offset+DATA_OFFS, p3, p3);
+ subtvb = tvb_new_subset_length(tvb, offset+DATA_OFFS, p3);
call_dissector_with_data(sub_handle_cap, subtvb, pinfo, tree, GUINT_TO_POINTER(0x14));
break;
case 0x70: /* MANAGE CHANNEL */
break;
case 0xC2: /* ENVELOPE */
proto_tree_add_item(tree, hf_le, tvb, offset+P3_OFFS, 1, ENC_BIG_ENDIAN);
- subtvb = tvb_new_subset(tvb, offset+DATA_OFFS, p3, p3);
+ subtvb = tvb_new_subset_length(tvb, offset+DATA_OFFS, p3);
dissect_bertlv(subtvb, pinfo, tree);
break;
/* FIXME: Missing SLEEP */
* of the packet (see TS 04.04) */
if (type == GSMTAP_TYPE_UM &&
sub_type & GSMTAP_CHANNEL_ACCH) {
- l1h_tvb = tvb_new_subset(tvb, hdr_len, 2, 2);
- payload_tvb = tvb_new_subset(tvb, hdr_len+2, len-(hdr_len+2),
- len-(hdr_len+2));
+ l1h_tvb = tvb_new_subset_length(tvb, hdr_len, 2);
+ payload_tvb = tvb_new_subset_length(tvb, hdr_len+2, len-(hdr_len+2));
} else {
- payload_tvb = tvb_new_subset(tvb, hdr_len, len-hdr_len,
- len-hdr_len);
+ payload_tvb = tvb_new_subset_length(tvb, hdr_len, len-hdr_len);
}
/* We don't want any UDP related info left in the INFO field, as the
* between the GGSN and the MS. The content and the coding of the Protocol Configuration are defined in octet 3-z of the
* Protocol Configuration Options in3GPP TS 24.008 [5].
*/
- next_tvb = tvb_new_subset(tvb, offset + 3, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset + 3, length);
de_sm_pco(next_tvb, ext_tree_proto, pinfo, 0, length, NULL, 0);
return 3 + length;
if (length < 1)
return 3;
- next_tvb = tvb_new_subset(tvb, offset+3, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset+3, length);
dissect_gsm_map_msisdn(next_tvb, pinfo, ext_tree_proto);
return 3 + length;
proto_tree_add_item(ext_tree, hf_gtp_ext_length, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
if (bssgp_handle) {
#if 0
col_set_fence(pinfo->cinfo, COL_INFO);
* then the IMEI shall be placed in the IMEI(SV) field and the last semi-octet of octet 11 shall be
* set to '1111'. Both IMEI and IMEISV are BCD encoded.
*/
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
digit_str = unpack_digits(next_tvb, 0);
proto_tree_add_string(ext_imeisv, hf_gtp_ext_imeisv, next_tvb, 0, -1, digit_str);
proto_item_append_text(te, ": %s", digit_str);
ti = proto_tree_add_item(ext_tree, hf_gtp_tmgi, tvb, offset, length, ENC_NA);
tmgi_tree = proto_item_add_subtree(ti, ett_gtp_tmgi);
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
de_mid(next_tvb, tmgi_tree, pinfo, 0, length, NULL, 0);
return 3 + length;
offset++;
proto_tree_add_item(ext_tree, hf_gtp_ext_length, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
- next_tvb = tvb_new_subset(tvb, offset, length-3, length-3);
+ next_tvb = tvb_new_subset_length(tvb, offset, length-3);
dissect_gtp_3gpp_mbms_service_area(next_tvb, pinfo, ext_tree, NULL);
return 3 + length;
offset = offset + 2;
if (length > 2) {
- next_tvb = tvb_new_subset(tvb, offset, length-2, length-2);
+ next_tvb = tvb_new_subset_length(tvb, offset, length-2);
if(!dissector_try_uint(gtp_priv_ext_dissector_table, ext_id, next_tvb, pinfo, ext_tree_priv_ext)){
proto_tree_add_item(ext_tree_priv_ext, hf_gtp_ext_val, tvb, offset, length - 2, ENC_NA);
}
int offset = 0;
stn_sr_item = proto_tree_add_item(tree, hf_gtpv2_stn_sr, tvb, offset, length, ENC_NA);
- new_tvb = tvb_new_subset(tvb, offset, length, length );
+ new_tvb = tvb_new_subset_length(tvb, offset, length);
sub_tree = proto_item_add_subtree(stn_sr_item, ett_gtpv2_stn_sr);
/* Octet 5
proto_item_append_text(item, "[Grouped IE]");
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_bearer_ctx);
- new_tvb = tvb_new_subset(tvb, offset, length, length );
+ new_tvb = tvb_new_subset_length(tvb, offset, length);
dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, 0, message_type);
}
proto_item_append_text(item, "[Grouped IE]");
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_PDN_conn);
- new_tvb = tvb_new_subset(tvb, offset, length, length );
+ new_tvb = tvb_new_subset_length(tvb, offset, length);
dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type);
}
proto_item_append_text(item, "%s (%u)", val_to_str_ext_const(ext_id, &sminmpec_values_ext, "Unknown"), ext_id);
- next_tvb = tvb_new_subset(tvb, offset, length-2, length-2);
+ next_tvb = tvb_new_subset_length(tvb, offset, length-2);
if (dissector_try_uint_new(gtpv2_priv_ext_dissector_table, ext_id, next_tvb, pinfo, tree, FALSE, GUINT_TO_POINTER((guint32)instance))){
return;
}
offset += 1;
if (p_flag) {
- msg_tvb = tvb_new_subset(tvb, 0, msg_length + 4, msg_length + 4);
+ msg_tvb = tvb_new_subset_length(tvb, 0, msg_length + 4);
dissect_gtpv2_ie_common(msg_tvb, pinfo, gtpv2_tree, offset, message_type);
} else {
dissect_gtpv2_ie_common(tvb, pinfo, gtpv2_tree, offset, message_type);
data_start++;
}
- next_tvb = tvb_new_subset( tvb, data_start, len-1-data_start, len-1-data_start );
+ next_tvb = tvb_new_subset_length( tvb, data_start, len-1-data_start);
al_subitem = proto_tree_add_item(al_tree, hf_h223_al_payload, next_tvb, 0, -1, ENC_NA);
calc_checksum = h223_al2_crc8bit(tvb);
frag_len = me->repeat_count;
if(frag_len > 0) {
tvbuff_t *next_tvb;
- next_tvb = tvb_new_subset(tvb, offset, frag_len, frag_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, frag_len);
dissect_mux_sdu_fragment( next_tvb, pinfo, pkt_offset + offset, pdu_tree,
call_info, me->vc, (offset+frag_len==len) && endOfMuxSdu);
offset += frag_len;
dissected as data. */
len -= mpl;
if( len > 0 ) {
- tvbuff_t *next_tvb = tvb_new_subset(tvb, offset, len, len);
+ tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset, len);
proto_tree *vc_tree = NULL;
if( pdu_tree ) {
}
/* create a tvb for the fragment */
- next_tvb = tvb_new_subset(tvb, start_offset, offset-start_offset,
- offset-start_offset);
+ next_tvb = tvb_new_subset_length(tvb, start_offset, offset-start_offset);
/*
* Dissect the PDU.
return end_offset;
}
- next_tvb = tvb_new_subset(tvb,offset,len,len);
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
name_minor = packageandid & 0xffff;
return end_offset;
}
- next_tvb = tvb_new_subset(tvb,offset,len,len);
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
if ( curr_info.par && curr_info.par->dissector) {
curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
return end_offset;
}
- next_tvb = tvb_new_subset(tvb,offset,len,len);
+ next_tvb = tvb_new_subset_length(tvb,offset,len);
if ( curr_info.par && curr_info.par->dissector) {
curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
offset++;
if (HDCP_ADDR8(addr)) {
- gint hdcp_len;
tvbuff_t *hdcp_tvb;
- hdcp_len = tvb_reported_length_remaining(tvb, offset);
- hdcp_tvb = tvb_new_subset(tvb, offset, hdcp_len, hdcp_len);
+ hdcp_tvb = tvb_new_subset_remaining(tvb, offset);
return call_dissector(hdcp_handle, hdcp_tvb, pinfo, hdmi_tree);
}
case CH_KIPPO_SESSIONS:
case CH_GLASTOPF_EVENTS:
case CH_GEOLOC_EVENTS:
- json_tvb = tvb_new_subset(tvb, offset, -1, -1);
+ json_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(json_hdl, json_tvb, pinfo, tree);
break;
default:
chunk_offset - offset, "Chunk size: %u octets",
chunk_size);
- data_tvb = tvb_new_subset(tvb, chunk_offset, chunk_size, chunk_size);
+ data_tvb = tvb_new_subset_length(tvb, chunk_offset, chunk_size);
/*
STREAM_OFFSET_STREAM_FLAGS, 2, ENC_BIG_ENDIAN);
/* done adding flags, continue with fields */
/* stream format dissection */
- next_tvb = tvb_new_subset(tvb, STREAM_OFFSET_CURRENT_FORMAT, 8, 8);
+ next_tvb = tvb_new_subset_length(tvb, STREAM_OFFSET_CURRENT_FORMAT, 8);
dissect_17221_stream_format(next_tvb, aem_tree);
proto_tree_add_item(aem_tree, hf_aem_formats_offset, tvb,
mr_subtree = proto_item_add_subtree(mr_item, ett_aem_stream_formats);
for(i = 0; i < mr_counter; ++i) {
- next_tvb = tvb_new_subset(tvb, mr_offset, 8, 8);
+ next_tvb = tvb_new_subset_length(tvb, mr_offset, 8);
dissect_17221_stream_format(next_tvb, mr_subtree);
mr_offset += 8;
}
if ((mess_type != AECP_AEM_COMMAND_MESSAGE)||(c_type == AECP_COMMAND_SET_STREAM_FORMAT))
{
- next_tvb = tvb_new_subset(tvb, AECP_OFFSET_STREAM_FORMAT_STREAM_FORMAT, 8, 8);
+ next_tvb = tvb_new_subset_length(tvb, AECP_OFFSET_STREAM_FORMAT_STREAM_FORMAT, 8);
dissect_17221_stream_format(next_tvb, aecp_tree);
}
break;
if ((mess_type != AECP_AEM_COMMAND_MESSAGE)||(c_type == AECP_COMMAND_SET_VIDEO_FORMAT))
{
- next_tvb = tvb_new_subset(tvb, AECP_OFFSET_VIDEO_FORMAT_FORMAT_SPECIFIC, 4, 4);
+ next_tvb = tvb_new_subset_length(tvb, AECP_OFFSET_VIDEO_FORMAT_FORMAT_SPECIFIC, 4);
dissect_17221_video_format(next_tvb, aecp_tree);
- next_tvb = tvb_new_subset(tvb, AECP_OFFSET_VIDEO_FORMAT_ASPECT_RATIO, 2, 2);
+ next_tvb = tvb_new_subset_length(tvb, AECP_OFFSET_VIDEO_FORMAT_ASPECT_RATIO, 2);
dissect_17221_video_aspect_ratio(next_tvb, aecp_tree);
proto_tree_add_item(aecp_tree, hf_aem_color_space, tvb,
AECP_OFFSET_VIDEO_FORMAT_COLOR_SPACE, 2, ENC_BIG_ENDIAN);
- next_tvb = tvb_new_subset(tvb, AECP_OFFSET_VIDEO_FORMAT_FRAME_SIZE, 4, 4);
+ next_tvb = tvb_new_subset_length(tvb, AECP_OFFSET_VIDEO_FORMAT_FRAME_SIZE, 4);
dissect_17221_video_frame_size(next_tvb, aecp_tree);
}
break;
if ((mess_type != AECP_AEM_COMMAND_MESSAGE)||(c_type == AECP_COMMAND_SET_SENSOR_FORMAT))
{
- next_tvb = tvb_new_subset(tvb, AECP_OFFSET_SENSOR_FORMAT_SENSOR_FORMAT, 8, 8);
+ next_tvb = tvb_new_subset_length(tvb, AECP_OFFSET_SENSOR_FORMAT_SENSOR_FORMAT, 8);
dissect_17221_sensor_format(next_tvb, aecp_tree);
}
break;
offset += 2;
oui = tvb_get_ntoh24(tvb, offset);
- tag_tvb = tvb_new_subset(tvb, offset, tag_len, tag_len);
+ tag_tvb = tvb_new_subset_length(tvb, offset, tag_len);
proto_tree_add_item(tree, hf_ieee80211_tag_oui, tvb, offset, 3, ENC_NA);
proto_item_append_text(ti, ": %s", uint_get_manuf_name(oui));
offset += 3;
}
}
- next_tvb=tvb_new_subset(tvb, offset, frame_len-offset-4, frame_len-offset-4);
+ next_tvb=tvb_new_subset_length(tvb, offset, frame_len-offset-4);
fc_data.ethertype = 0;
if(fc_handle){
break;
case IPDC_Q931:
q931_tvb =
- tvb_new_subset(tvb, offset+2, len, len);
+ tvb_new_subset_length(tvb, offset+2, len);
call_dissector(q931_handle,q931_tvb,pinfo,tree);
break;
case IPDC_ENCTYPE:
return;
}
- next_tvb = tvb_new_subset(tvb, 5, 1, 1);
+ next_tvb = tvb_new_subset_length(tvb, 5, 1);
d = tvb_get_guint8(next_tvb, 0);
if ((eti->intrp2 && eti->intrp2(tree, next_tvb, si, b2, offs, d))
|| (si->intrp2 && si->intrp2(tree, next_tvb, si, b2, offs, d))) {
return;
}
- next_tvb = tvb_new_subset(tvb, 6, 1, 1);
+ next_tvb = tvb_new_subset_length(tvb, 6, 1);
d = tvb_get_guint8(next_tvb, 0);
if ((eti->intrp3 && eti->intrp3(tree, next_tvb, si, b3, offs, d))
|| (si->intrp3 && si->intrp3(tree, next_tvb, si, b3, offs, d))) {
if (dissector_handle) {
saved_match_uint = pinfo->match_uint;
pinfo->match_uint = encapsulated_protocol;
- next_tvb = tvb_new_subset(tvb_decrypted, 0,
- decrypted_len - esp_auth_len - esp_pad_len - esp_iv_len - 2,
+ next_tvb = tvb_new_subset_length(tvb_decrypted, 0,
decrypted_len - esp_auth_len - esp_pad_len - esp_iv_len - 2);
export_ipsec_pdu(dissector_handle, pinfo, next_tvb);
call_dissector(dissector_handle, next_tvb, pinfo, tree);
}
else
{
- next_tvb = tvb_new_subset(tvb_decrypted, 0,
- decrypted_len - esp_iv_len - esp_auth_len,
+ next_tvb = tvb_new_subset_length(tvb_decrypted, 0,
decrypted_len - esp_iv_len - esp_auth_len);
export_ipsec_pdu(data_handle, pinfo, next_tvb);
call_dissector(data_handle, next_tvb, pinfo, esp_tree);
{
tvbuff_t *eap_tvb = NULL;
- eap_tvb = tvb_new_subset(tvb, offset,length, length );
+ eap_tvb = tvb_new_subset_length(tvb, offset, length);
if ((eap_tvb != NULL)&& eap_handle != NULL){
call_dissector(eap_handle, eap_tvb, pinfo, tree);
}else{
the data specified by the length field. */
TRY {
- payload_tvb = tvb_new_subset(tvb, 14, length, length);
+ payload_tvb = tvb_new_subset_length(tvb, 14, length);
trailer_tvb = tvb_new_subset_remaining(tvb, 14 + length);
}
CATCH_BOUNDS_ERRORS {
/* If this is a segmented message we may not have all the data */
next_tvb = tvb_new_subset_remaining(parameter_tvb, offset);
} else {
- next_tvb = tvb_new_subset(parameter_tvb, offset, sdp_length, sdp_length);
+ next_tvb = tvb_new_subset_length(parameter_tvb, offset, sdp_length);
}
if (BCTP_Indicator_field_2==0x20) {
/* IPBCP (text encoded) */
tvbuff_t *protocol_data_tvb;
protocol_data_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- protocol_data_tvb = tvb_new_subset(parameter_tvb, PROTOCOL_DATA_OFFSET, protocol_data_length, protocol_data_length);
+ protocol_data_tvb = tvb_new_subset_length(parameter_tvb, PROTOCOL_DATA_OFFSET, protocol_data_length);
proto_item_append_text(parameter_item, " (%u byte%s)", protocol_data_length, plurality(protocol_data_length, "", "s"));
if(sapi_val_assigned == FALSE)
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
dissect_parameter(parameter_tvb, pinfo, tree, iua_tree);
/* get rid of the handled parameter */
offset += total_length;
sapi_val_assigned = FALSE;
- common_header_tvb = tvb_new_subset(message_tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(message_tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH);
parameters_tvb = tvb_new_subset_remaining(message_tvb, PARAMETERS_OFFSET);
dissect_common_header(common_header_tvb, pinfo, iua_tree);
dissect_parameters(parameters_tvb, pinfo, tree, iua_tree);
pinfo->circuit_id = phdr;
- tvb = tvb_new_subset(tvb_in,2,len,len);
+ tvb = tvb_new_subset_length(tvb_in,2,len);
}
first_octet = tvb_get_guint8(tvb,0);
/* removes Markers if any and prepares new tvbuff for next dissector */
if (endpoint <= MPA_RESPONDER && state->minfo[endpoint].valid
&& number_of_markers(state, tcpinfo, endpoint) > 0) {
- next_tvb = tvb_new_subset(remove_markers(tvb, pinfo,
+ next_tvb = tvb_new_subset_length(remove_markers(tvb, pinfo,
get_first_marker_offset(state, tcpinfo, endpoint),
number_of_markers(state, tcpinfo, endpoint),
fpdu_total_length(tcpinfo)), MPA_ULPDU_LENGTH_LEN,
- ulpdu_length, ulpdu_length);
- } else {
- next_tvb = tvb_new_subset(tvb, MPA_ULPDU_LENGTH_LEN, ulpdu_length,
ulpdu_length);
+ } else {
+ next_tvb = tvb_new_subset_length(tvb, MPA_ULPDU_LENGTH_LEN, ulpdu_length);
}
}
/* Grab the rest of the frame. */
- next_tvb = tvb_new_subset(tvb, length, -1, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, length);
/* dissect the ethernet or wlan header next */
if (version == ETHERNET_PORT)
}
/* Grab the rest of the frame. */
- next_tvb = tvb_new_subset(tvb, length, -1, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, length);
/* dissect the ethernet header next */
call_dissector(ethernet_handle, next_tvb, pinfo, tree);
pinfo->pseudo_header->ieee_802_11.fcs_len = 0;
/* Grab the rest of the frame. */
- next_tvb = tvb_new_subset(tvb, length, -1, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, length);
/* If we had an in-header FCS, check it. */
if (hdr_fcs_ti) {
tree_offset += dissect_jxta_message_framing(jxta_message_framing_tvb, pinfo, jxta_tree, &content_length, &content_type);
- jxta_message_tvb = tvb_new_subset(tvb, tree_offset, (gint) content_length, (gint) content_length);
+ jxta_message_tvb = tvb_new_subset_length(tvb, tree_offset, (gint) content_length);
tree_offset += dissect_media(content_type, jxta_message_tvb, pinfo, tree);
available = tvb_reported_length_remaining(tvb, offset + headers_len);
if (available >= content_length) {
- tvbuff_t *jxta_message_tvb = tvb_new_subset(tvb, offset + headers_len, (gint) content_length, (gint) content_length);
+ tvbuff_t *jxta_message_tvb = tvb_new_subset_length(tvb, offset + headers_len, (gint) content_length);
conversation_t *peer_conversation = NULL;
jxta_tree_item = proto_tree_add_protocol_format(tree, proto_jxta, tvb, offset, -1, "JXTA" );
proto_tree_add_item(jxta_elem_tree, hf_jxta_element_content_len, tvb, tree_offset, (int)sizeof(guint32), ENC_BIG_ENDIAN);
tree_offset += (int)sizeof(guint32);
- element_content_tvb = tvb_new_subset(tvb, tree_offset, content_len, content_len);
+ element_content_tvb = tvb_new_subset_length(tvb, tree_offset, content_len);
tree_offset += dissect_media(mediatype, element_content_tvb, pinfo, jxta_elem_tree);
}
/* content */
- element_content_tvb = tvb_new_subset(tvb, tree_offset, (gint)content_len, (gint)content_len);
+ element_content_tvb = tvb_new_subset_length(tvb, tree_offset, (gint)content_len);
tree_offset += dissect_media(mediatype, element_content_tvb, pinfo, jxta_elem_tree);
return NULL;
}
else {
- return tvb_new_subset(tvb, offset, len, len);
+ return tvb_new_subset_length(tvb, offset, len);
}
}
offset+=6;
/* AP-REQ / AP-REP data */
- next_tvb=tvb_new_subset(tvb, offset, ap_req_len, ap_req_len);
+ next_tvb=tvb_new_subset_length(tvb, offset, ap_req_len);
dissect_kpasswd_ap_req_data(pinfo, next_tvb, kpasswd_tree);
offset+=ap_req_len;
if (avp_vendor_id != VENDOR_IETF) {
- avp_tvb = tvb_new_subset(tvb, idx, avp_len, avp_len);
+ avp_tvb = tvb_new_subset_length(tvb, idx, avp_len);
if (avp_vendor_id == VENDOR_CISCO) { /* Vendor-Specific AVP */
case INITIAL_RECEIVED_LCP_CONFREQ:
te = proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_initial_received_lcp_confreq, tvb, idx, avp_len, ENC_NA);
l2tp_lcp_avp_tree = proto_item_add_subtree(te, ett_l2tp_lcp);
- next_tvb = tvb_new_subset(tvb, idx, avp_len, avp_len);
+ next_tvb = tvb_new_subset_length(tvb, idx, avp_len);
call_dissector(ppp_lcp_options_handle, next_tvb, pinfo, l2tp_lcp_avp_tree );
break;
case LAST_SENT_LCP_CONFREQ:
te = proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_last_sent_lcp_confreq, tvb, idx, avp_len, ENC_NA);
l2tp_lcp_avp_tree = proto_item_add_subtree(te, ett_l2tp_lcp);
- next_tvb = tvb_new_subset(tvb, idx, avp_len, avp_len);
+ next_tvb = tvb_new_subset_length(tvb, idx, avp_len);
call_dissector(ppp_lcp_options_handle, next_tvb, pinfo, l2tp_lcp_avp_tree );
break;
case LAST_RECEIVED_LCP_CONFREQ:
te = proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_last_received_lcp_confreq, tvb, idx, avp_len, ENC_NA);
l2tp_lcp_avp_tree = proto_item_add_subtree(te, ett_l2tp_lcp);
- next_tvb = tvb_new_subset(tvb, idx, avp_len, avp_len);
+ next_tvb = tvb_new_subset_length(tvb, idx, avp_len);
call_dissector(ppp_lcp_options_handle, next_tvb, pinfo, l2tp_lcp_avp_tree );
break;
}
- next_tvb = tvb_new_subset(tvb, 2, len, len);
+ next_tvb = tvb_new_subset_length(tvb, 2, len);
call_dissector(lapb_handle, next_tvb, pinfo, tree);
}
expert_add_info(pinfo, pi, &ei_lapd_checksum_bad);
}
- next_tvb = tvb_new_subset(tvb, lapd_header_len, tvb_length_remaining(tvb,lapd_header_len) - 2, tvb_length_remaining(tvb,lapd_header_len) - 2);
+ next_tvb = tvb_new_subset_length(tvb, lapd_header_len, tvb_length_remaining(tvb,lapd_header_len) - 2);
} else
next_tvb = tvb_new_subset_remaining(tvb, lapd_header_len);
return (len_dissected);
}
/* Create a new tvb for just this LBMC message. */
- lbmc_tvb = tvb_new_subset(tvb, tvb_lbmc_offset, (gint)msglen, (gint)msglen);
+ lbmc_tvb = tvb_new_subset_length(tvb, tvb_lbmc_offset, (gint)msglen);
if ((type == LBMC_TYPE_MESSAGE) || (type == LBMC_TYPE_RETRANS) || (type == LBMC_TYPE_PRORX))
{
topic_index = tvb_get_ntohl(lbmc_tvb, O_LBMC_HDR_T_TIDX);
expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_zero_length, "LBMC header length is zero");
return (len_dissected);
}
- hdr_tvb = tvb_new_subset(lbmc_tvb, pkt_offset, (gint)bhdr.hdr_len, (gint)bhdr.hdr_len);
+ hdr_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, (gint)bhdr.hdr_len);
found_header[next_hdr] = 1;
switch (next_hdr)
{
/* Has message properties */
actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset) - msgprop_len;
msgprop_offset = pkt_offset + actual_data_len;
- data_tvb = tvb_new_subset(lbmc_tvb, pkt_offset, actual_data_len, actual_data_len);
- msgprop_tvb = tvb_new_subset(lbmc_tvb, msgprop_offset, msgprop_len, msgprop_len);
+ data_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, actual_data_len);
+ msgprop_tvb = tvb_new_subset_length(lbmc_tvb, msgprop_offset, msgprop_len);
}
else
{
- actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
- data_tvb = tvb_new_subset(lbmc_tvb, pkt_offset, actual_data_len, actual_data_len);
+ data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
msgprop_tvb = NULL;
}
msg_complete = TRUE;
{
/* But don't reassemble them */
actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
- data_tvb = tvb_new_subset(lbmc_tvb, pkt_offset, actual_data_len, actual_data_len);
+ data_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, actual_data_len);
msgprop_tvb = NULL;
msg_complete = TRUE;
}
{
/* Store the frame number in which the message will be reassembled */
msg->reassembled_frame = pinfo->fd->num;
- actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
- data_tvb = tvb_new_subset(lbmc_tvb, pkt_offset, actual_data_len, actual_data_len);
+ data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
msgprop_tvb = NULL;
msg_reassembled = TRUE;
msg_complete = TRUE;
else
{
/* This is not the last fragment of the message. */
- actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
- data_tvb = tvb_new_subset(lbmc_tvb, pkt_offset, actual_data_len, actual_data_len);
+ data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
msgprop_tvb = NULL;
msg_reassembled = TRUE;
msg_complete = FALSE;
msg->reassembled_data = tvb_new_real_data(buf, msg->total_len, msg->total_len);
msg_complete = TRUE;
/* Create separate data and msgprop tvbs */
- msg->data = tvb_new_subset(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len, msg->total_len - msg->msgprop_len);
+ msg->data = tvb_new_subset_length(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len);
if (msg->msgprop_len > 0)
{
- msg->msgprop = tvb_new_subset(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len, msg->msgprop_len);
+ msg->msgprop = tvb_new_subset_length(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len);
}
add_new_data_source(pinfo, msg->reassembled_data, "Reassembled Data");
if (msg->data == NULL)
{
- msg->data = tvb_new_subset(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len, msg->total_len - msg->msgprop_len);
+ msg->data = tvb_new_subset_length(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len);
}
if (msg->msgprop == NULL)
{
if (msg->msgprop_len > 0)
{
- msg->msgprop = tvb_new_subset(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len, msg->msgprop_len);
+ msg->msgprop = tvb_new_subset_length(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len);
}
}
data_tvb = msg->data;
{
gint tvb_len = packet_len - opt_total_len;
- packet_tvb = tvb_new_subset(tvb, 0, tvb_len, tvb_len);
+ packet_tvb = tvb_new_subset_length(tvb, 0, tvb_len);
}
}
}
{
tvbuff_t * next_tvb;
- next_tvb = tvb_new_subset(tvb, offset, -1, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
return (lbmc_dissect_lbmc_packet(next_tvb, 0, pinfo, tree, tag_name, channel));
}
{
tvbuff_t * next_tvb;
- next_tvb = tvb_new_subset(tvb, offset, -1, -1);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
return (lbmc_dissect_lbmc_packet(next_tvb, 0, pinfo, tree, tag_name, channel));
}
char *tmpstr;
/* this octet string contains an NT SID */
- sid_tvb=tvb_new_subset(tvb, offset, len, len);
+ sid_tvb=tvb_new_subset_length(tvb, offset, len);
dissect_nt_sid(sid_tvb, 0, tree, "SID", &tmpstr, hf_index);
ldapvalue_string=tmpstr;
/* if we could unwrap, do a tvb shuffle */
if(pinfo->gssapi_decrypted_tvb){
decr_tvb=pinfo->gssapi_decrypted_tvb;
- } else if (pinfo->gssapi_wrap_tvb) {
- plain_tvb=pinfo->gssapi_wrap_tvb;
}
-
/* tidy up */
pinfo->decrypt_gssapi_tvb=0;
pinfo->gssapi_wrap_tvb=NULL;
* see if the wrapping involved encryption of the
* data; if not, just use the plaintext data.
*/
- if (!decr_tvb && !plain_tvb) {
+ if (!decr_tvb) {
if(!pinfo->gssapi_data_encrypted){
plain_tvb = tvb_new_subset_remaining(gssapi_tvb, ver_len);
}
version = (dword >> 25) & 0x7;
nexthdr = (dword >> 28) & 0xf;
pkgsize = dword & 0x3fff;
- linx_tvb = tvb_new_subset(tvb, 0, pkgsize, pkgsize);
+ linx_tvb = tvb_new_subset_length(tvb, 0, pkgsize);
tvb_set_reported_length(tvb, pkgsize);
/* Supports version 2 and 3 so far */
col_append_fstr(pinfo->cinfo, COL_INFO, "tcpcm:%s ", val_to_str_const(type, linx_short_tcp_names, "unknown"));
tvb_set_reported_length(tvb, size);
- linx_tcp_tvb = tvb_new_subset(tvb, 0, size, size);
+ linx_tcp_tvb = tvb_new_subset_length(tvb, 0, size);
ti = proto_tree_add_item(tree, proto_linx_tcp, linx_tcp_tvb, 0, -1, ENC_NA);
linx_tcp_tree = proto_item_add_subtree(ti, ett_linx_tcp);
tempShort = tvb_get_ntohs(tvb, offset);
tempType = TLV_TYPE(tempShort);
/* pass only TLV to dissectors, Zero offset (point to front of tlv) */
- new_tvb = tvb_new_subset(tvb, offset, TLV_INFO_LEN(tempShort)+2, TLV_INFO_LEN(tempShort)+2);
+ new_tvb = tvb_new_subset_length(tvb, offset, TLV_INFO_LEN(tempShort)+2);
switch (tempType)
{
case CHASSIS_ID_TLV_TYPE:
}
for (i = 0, offset = 1; i < nb_of_pages; i++) {
length = tvb_get_guint8(warning_msg_seg_tvb, offset+82);
- cb_data_page_tvb = tvb_new_subset(warning_msg_seg_tvb, offset, length, length);
+ cb_data_page_tvb = tvb_new_subset_length(warning_msg_seg_tvb, offset, length);
cb_data_tvb = dissect_cbs_data(dataCodingScheme, cb_data_page_tvb, tree, pinfo, 0);
if (cb_data_tvb) {
str = tvb_get_string_enc(wmem_packet_scope(), cb_data_tvb, 0, tvb_reported_length(cb_data_tvb), ENC_UTF_8|ENC_NA);
/* if the segment has not been fragmented, then no reassembly is needed */
if(!more_frags && offset == 0)
{
- new_tvb = tvb_new_subset(tvb,frame_offset,tvb_length(tvb)-frame_offset,-1);
+ new_tvb = tvb_new_subset_remaining(tvb,frame_offset);
}
else
{
THROW(ReportedBoundsError);
}
- message_data_tvb = tvb_new_subset(message_tvb, V2_MESSAGE_DATA_OFFSET, message_data_length, message_data_length);
+ message_data_tvb = tvb_new_subset_length(message_tvb, V2_MESSAGE_DATA_OFFSET, message_data_length);
type = tvb_get_ntohs(message_tvb, V2_TYPE_OFFSET);
switch(type) {
"Invalid message data length: %u", message_data_length);
THROW(ReportedBoundsError);
}
- message_data_tvb = tvb_new_subset(message_tvb, V8_MESSAGE_DATA_OFFSET, message_data_length, message_data_length);
+ message_data_tvb = tvb_new_subset_length(message_tvb, V8_MESSAGE_DATA_OFFSET, message_data_length);
type = tvb_get_guint8(message_tvb, V8_TYPE_OFFSET);
length = tvb_get_ntohl(message_tvb, LENGTH_OFFSET);
message_data_length = length - HEADER_LENGTH;
- message_data_tvb = tvb_new_subset(message_tvb, MESSAGE_DATA_OFFSET, message_data_length, message_data_length);
+ message_data_tvb = tvb_new_subset_length(message_tvb, MESSAGE_DATA_OFFSET, message_data_length);
type = tvb_get_guint8(message_tvb, TYPE_OFFSET);
padding_length = nr_of_padding_bytes(length);
protocol_data_length = length - PARAMETER_HEADER_LENGTH;
- mtp2_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, protocol_data_length, protocol_data_length);
+ mtp2_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, protocol_data_length);
call_dissector(mtp2_handle, mtp2_tvb, pinfo, tree);
if (parameter_tree) {
offset = 0;
/* extract and process the common header */
- common_header_tvb = tvb_new_subset(message_tvb, offset, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(message_tvb, offset, COMMON_HEADER_LENGTH);
dissect_m2tp_common_header(common_header_tvb, pinfo, m2tp_tree);
offset += COMMON_HEADER_LENGTH;
padding_length = nr_of_padding_bytes(length);
total_length = length + padding_length;
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(message_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(message_tvb, offset, total_length);
dissect_m2tp_parameter(parameter_tvb, pinfo, m2tp_tree, m2tp_item, tree);
/* get rid of the handled parameter */
offset += total_length;
payload_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- payload_tvb = tvb_new_subset(parameter_tvb, DATA_1_MTP3_OFFSET, payload_length, payload_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, DATA_1_MTP3_OFFSET, payload_length);
proto_item_set_len(parameter_item, PARAMETER_HEADER_LENGTH);
call_dissector(mtp3_handle, payload_tvb, pinfo, tree);
payload_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH - DATA_2_LI_LENGTH;
proto_tree_add_item(parameter_tree, hf_data_2_li, parameter_tvb, DATA_2_LI_OFFSET, DATA_2_LI_LENGTH, ENC_BIG_ENDIAN);
- payload_tvb = tvb_new_subset(parameter_tvb, DATA_2_MTP3_OFFSET, payload_length, payload_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, DATA_2_MTP3_OFFSET, payload_length);
proto_item_set_len(parameter_item, PARAMETER_HEADER_LENGTH + DATA_2_LI_LENGTH);
call_dissector(mtp3_handle, payload_tvb, pinfo, tree);
}
guint16 parameters_length;
parameters_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
guint16 parameters_length;
parameters_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
guint16 parameters_length;
parameters_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
dissect_parameter(parameter_tvb, pinfo, tree, m2ua_tree);
/* get rid of the handled parameter */
offset += total_length;
{
tvbuff_t *common_header_tvb, *parameters_tvb;
- common_header_tvb = tvb_new_subset(message_tvb, 0, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(message_tvb, 0, COMMON_HEADER_LENGTH);
parameters_tvb = tvb_new_subset_remaining(message_tvb, COMMON_HEADER_LENGTH);
dissect_common_header(common_header_tvb, pinfo, m2ua_tree);
dissect_parameters(parameters_tvb, pinfo, tree, m2ua_tree);
length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
protocol_data_length = length - PARAMETER_HEADER_LENGTH;
- payload_tvb = tvb_new_subset(parameter_tvb, V5_PROTOCOL_DATA_OFFSET, protocol_data_length, protocol_data_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, V5_PROTOCOL_DATA_OFFSET, protocol_data_length);
proto_item_append_text(parameter_item, " (SS7 message of %u byte%s)", protocol_data_length, plurality(protocol_data_length, "", "s"));
proto_item_set_len(parameter_item, PARAMETER_HEADER_LENGTH);
call_dissector(mtp3_handle, payload_tvb, pinfo, tree);
tvbuff_t *payload_tvb;
protocol_data_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- payload_tvb = tvb_new_subset(parameter_tvb, PROTOCOL_DATA_1_OFFSET, protocol_data_length, protocol_data_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, PROTOCOL_DATA_1_OFFSET, protocol_data_length);
proto_item_append_text(parameter_item, " (SS7 message of %u byte%s)", protocol_data_length, plurality(protocol_data_length, "", "s"));
proto_item_set_len(parameter_item, PARAMETER_HEADER_LENGTH);
call_dissector(mtp3_handle, payload_tvb, pinfo, tree);
tvbuff_t *payload_tvb;
protocol_data_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH - LI_OCTETT_LENGTH;
- payload_tvb = tvb_new_subset(parameter_tvb, PROTOCOL_DATA_2_OFFSET, protocol_data_length, protocol_data_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, PROTOCOL_DATA_2_OFFSET, protocol_data_length);
proto_tree_add_item(parameter_tree, hf_li, parameter_tvb, LI_OCTETT_OFFSET, LI_OCTETT_LENGTH, ENC_BIG_ENDIAN);
proto_item_append_text(parameter_item, " (SS7 message of %u byte%s)", protocol_data_length, plurality(protocol_data_length, "", "s"));
proto_item_set_len(parameter_item, PARAMETER_HEADER_LENGTH + LI_OCTETT_LENGTH);
length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
parameters_length = length - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
parameters_length = length - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
parameters_length = length - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
si = tvb_get_guint8(parameter_tvb, DATA_SI_OFFSET);
ulp_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH - DATA_HDR_LENGTH;
- payload_tvb = tvb_new_subset(parameter_tvb, DATA_ULP_OFFSET, ulp_length, ulp_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, DATA_ULP_OFFSET, ulp_length);
dpc = tvb_get_ntohl(parameter_tvb, DATA_DPC_OFFSET);
opc = tvb_get_ntohl(parameter_tvb, DATA_OPC_OFFSET);
}/* parameter_tree */
- payload_tvb = tvb_new_subset(parameter_tvb, DATA_ULP_OFFSET, ulp_length, ulp_length);
+ payload_tvb = tvb_new_subset_length(parameter_tvb, DATA_ULP_OFFSET, ulp_length);
if (!dissector_try_uint(si_dissector_table, tvb_get_guint8(parameter_tvb, DATA_SI_OFFSET), payload_tvb, pinfo, tree))
call_dissector(data_handle, payload_tvb, pinfo, tree);
guint16 parameters_length;
parameters_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
guint16 parameters_length;
parameters_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- parameters_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length, parameters_length);
+ parameters_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, parameters_length);
dissect_parameters(parameters_tvb, pinfo, tree, parameter_tree);
}
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
switch(version) {
case M3UA_V5:
dissect_v5_parameter(parameter_tvb, pinfo, tree, m3ua_tree);
{
tvbuff_t *common_header_tvb, *parameters_tvb;
- common_header_tvb = tvb_new_subset(message_tvb, 0, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(message_tvb, 0, COMMON_HEADER_LENGTH);
parameters_tvb = tvb_new_subset_remaining(message_tvb, COMMON_HEADER_LENGTH);
if (version == M3UA_V5)
dissect_v5_common_header(common_header_tvb, pinfo, m3ua_tree);
guint8 UMSequenceNumberLength,
guint8 priority)
{
- tvbuff_t *rb_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ tvbuff_t *rb_tvb = tvb_new_subset_length(tvb, offset, data_length);
struct rlc_lte_info *p_rlc_lte_info;
/* Resuse or create RLC info */
proto_tree_add_item(cr_tree, hf_mac_lte_control_ue_contention_resolution_identity,
tvb, offset, 6, ENC_NA);
if (global_mac_lte_decode_cr_body) {
- tvbuff_t *cr_body_tvb = tvb_new_subset(tvb, offset, 6, 6);
+ tvbuff_t *cr_body_tvb = tvb_new_subset_length(tvb, offset, 6);
dissector_handle_t ul_ccch_handle = find_dissector("lte_rrc.ul_ccch");
if (ul_ccch_handle != 0) {
call_with_catch_all(ul_ccch_handle, cr_body_tvb, pinfo, cr_tree);
/* CCCH frames can be dissected directly by LTE RRC... */
if ((lcids[n] == 0) && global_mac_lte_attempt_rrc_decode) {
- tvbuff_t *rrc_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ tvbuff_t *rrc_tvb = tvb_new_subset_length(tvb, offset, data_length);
/* Get appropriate dissector handle */
volatile dissector_handle_t protocol_handle = 0;
data_length = tvb_length(tvb) - sectag_length - icv_length;
icv_offset = data_length + data_offset;
- next_tvb = tvb_new_subset(tvb, data_offset, data_length, data_length);
+ next_tvb = tvb_new_subset_length(tvb, data_offset, data_length);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MACSEC");
col_set_str(pinfo->cinfo, COL_INFO, "MACsec frame");
}
if (pdu_data_size > (guint32)(sc_address_size + 1)) {
pdu_data_size -= sc_address_size + 1;
- sms_tvb = tvb_new_subset(tvb, base_offset + pdu_data_offset + 1 + sc_address_size,
- pdu_data_size, pdu_data_size);
+ sms_tvb = tvb_new_subset_length(tvb, base_offset + pdu_data_offset + 1 + sc_address_size,
+ pdu_data_size);
pinfo->p2p_dir = (message_status < 2) ? P2P_DIR_SENT : P2P_DIR_RECV;
call_dissector(gsm_sms_handle, sms_tvb, pinfo, subtree);
}
pdu_data_size, ENC_NA);
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
if ((mbim_conv->cellular_class & MBIM_CELLULAR_CLASS_CDMA) && cdma_sms_handle) {
- sms_tvb = tvb_new_subset(tvb, base_offset + pdu_data_offset, pdu_data_size, pdu_data_size);
+ sms_tvb = tvb_new_subset_length(tvb, base_offset + pdu_data_offset, pdu_data_size);
call_dissector(cdma_sms_handle, sms_tvb, pinfo, subtree);
}
}
sc_address_size, NULL, 0);
}
if (pdu_data_size > (guint32)(sc_address_size + 1)) {
- sms_tvb = tvb_new_subset(tvb, base_offset + pdu_data_offset + 1 + sc_address_size,
- pdu_data_size, pdu_data_size);
+ sms_tvb = tvb_new_subset_length(tvb, base_offset + pdu_data_offset + 1 + sc_address_size,
+ pdu_data_size);
pinfo->p2p_dir = P2P_DIR_RECV;
call_dissector(gsm_sms_handle, sms_tvb, pinfo, subtree);
}
pdu_data_size, ENC_NA);
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
if ((mbim_conv->cellular_class & MBIM_CELLULAR_CLASS_CDMA) && cdma_sms_handle) {
- sms_tvb = tvb_new_subset(tvb, base_offset + pdu_data_offset, pdu_data_size, pdu_data_size);
+ sms_tvb = tvb_new_subset_length(tvb, base_offset + pdu_data_offset, pdu_data_size);
call_dissector(cdma_sms_handle, sms_tvb, pinfo, subtree);
}
}
ti = proto_tree_add_item(tree, hf_mbim_set_ussd_ussd_payload, tvb, base_offset + ussd_payload_offset,
ussd_payload_length, ENC_NA);
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
- ussd_tvb = tvb_new_subset(tvb, base_offset + ussd_payload_offset, ussd_payload_length, ussd_payload_length);
+ ussd_tvb = tvb_new_subset_length(tvb, base_offset + ussd_payload_offset, ussd_payload_length);
switch (encoding) {
case SMS_ENCODING_7BIT:
case SMS_ENCODING_7BIT_LANG:
ti = proto_tree_add_item(tree, hf_mbim_ussd_info_ussd_payload, tvb, base_offset + ussd_payload_offset,
ussd_payload_length, ENC_NA);
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
- ussd_tvb = tvb_new_subset(tvb, base_offset + ussd_payload_offset, ussd_payload_length, ussd_payload_length);
+ ussd_tvb = tvb_new_subset_length(tvb, base_offset + ussd_payload_offset, ussd_payload_length);
switch (encoding) {
case SMS_ENCODING_7BIT:
case SMS_ENCODING_7BIT_LANG:
ti = proto_tree_add_item(tree, hf_mbim_set_stk_terminal_response_data_buffer, tvb, offset, response_length, ENC_NA);
if (etsi_cat_handle) {
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
- pac_tvb = tvb_new_subset(tvb, offset, response_length, response_length);
+ pac_tvb = tvb_new_subset_length(tvb, offset, response_length);
call_dissector(etsi_cat_handle, pac_tvb, pinfo, subtree);
}
}
frag_tvb, offset, info_buff_len, ENC_NA);
if (bertlv_handle) {
env_tree = proto_item_add_subtree(ti, ett_mbim_buffer);
- env_tvb = tvb_new_subset(frag_tvb, offset, info_buff_len, info_buff_len);
+ env_tvb = tvb_new_subset_length(frag_tvb, offset, info_buff_len);
call_dissector(bertlv_handle, env_tvb, pinfo, env_tree);
}
} else if (info_buff_len) {
ti = proto_tree_add_item(subtree, hf_mbim_stk_pac_pac, frag_tvb, offset, pac_length, ENC_NA);
if (bertlv_handle) {
pac_tree = proto_item_add_subtree(ti, ett_mbim_buffer);
- pac_tvb = tvb_new_subset(frag_tvb, offset, pac_length, pac_length);
+ pac_tvb = tvb_new_subset_length(frag_tvb, offset, pac_length);
call_dissector(bertlv_handle, pac_tvb, pinfo, pac_tree);
}
}
proto_tree_add_uint(mbtcp_tree, hf_mbtcp_unitid, tvb, offset + 6, 1, unit_id);
/* dissect the Modbus PDU */
- next_tvb = tvb_new_subset( tvb, offset+7, len-1, len-1);
+ next_tvb = tvb_new_subset_length( tvb, offset+7, len-1);
/* keep existing context */
p_save_proto_data = p_get_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0 );
len = len - 2;
/* dissect the Modbus PDU */
- next_tvb = tvb_new_subset( tvb, offset+1, len-1, len-1);
+ next_tvb = tvb_new_subset_length( tvb, offset+1, len-1);
/* keep existing context */
p_save_proto_data = p_get_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0 );
if (tvb_length(tvb) >= MDSHDR_HEADER_SIZE + pktlen
&& 0 != pktlen /*if something wrong*/) {
- next_tvb = tvb_new_subset(tvb, MDSHDR_HEADER_SIZE, pktlen, pktlen);
+ next_tvb = tvb_new_subset_length(tvb, MDSHDR_HEADER_SIZE, pktlen);
/* XXX what to do with the rest of this frame? --ArtemTamazov */
}
else {
tokenlen = tvb_next_offset - tvb_current_offset;
if ( tokenlen > 3 ){
- next_tvb = tvb_new_subset(tvb, tvb_current_offset, tokenlen, tokenlen);
+ next_tvb = tvb_new_subset_length(tvb, tvb_current_offset, tokenlen);
call_dissector(sdp_handle, next_tvb, pinfo, megaco_localdescriptor_tree);
}
}
tvb_mihf_id = tvb_new_composite();
for(i=0; i < mihf_id_len/2; i++)
{
- tvb_temp = tvb_new_subset(tvb, offset + 2 + 2*i, 1 , 1);
+ tvb_temp = tvb_new_subset_length(tvb, offset + 2 + 2*i, 1);
tvb_composite_append(tvb_mihf_id, tvb_temp);
}
TRY
key_data_item = proto_tree_add_item(tree, hf_mikey_pl[PL_KEY_DATA], tvb, 4, encr_length, ENC_NA);
key_data_tree = proto_item_add_subtree(key_data_item, ett_mikey_enc_data);
- sub_tvb = tvb_new_subset(tvb, offset+4, encr_length, encr_length);
+ sub_tvb = tvb_new_subset_length(tvb, offset+4, encr_length);
dissect_payload(PL_KEY_DATA, mikey, sub_tvb, pinfo, key_data_tree);
} else {
/* If Key Data is encrypted, show only the encr_data */
proto_item_append_text(parent, " Type: %s", val_to_str_const(type, cert_type_vals, "Unknown"));
}
- subtvb = tvb_new_subset(tvb, offset+4, length, length);
+ subtvb = tvb_new_subset_length(tvb, offset+4, length);
dissect_x509af_Certificate(FALSE, subtvb, 0, &asn1_ctx, tree, hf_mikey[POS_CERTIFICATE]);
return 4 + length;
int param_len;
tvbuff_t *subtvb;
- subtvb = tvb_new_subset(tvb, offset+sub_pos, length-sub_pos, length-sub_pos);
+ subtvb = tvb_new_subset_length(tvb, offset+sub_pos, length-sub_pos);
param_len = dissect_payload_sp_param(type, subtvb, tree);
if (param_len < 0)
col_set_writable(pinfo->cinfo, FALSE);
#endif
- eth_tvb = tvb_new_subset(tvb, offset, length, length);
+ eth_tvb = tvb_new_subset_length(tvb, offset, length);
/* Continue after Ethernet dissection errors */
TRY {
call_dissector(eth_handle, eth_tvb, pinfo, mint_tree);
proto_tree_add_item(ext_tree, hf_mip_nvse_vendor_org_id, tvb, nvse_local_offset, 4, ENC_BIG_ENDIAN);
nvse_local_offset+=4;
- next_tvb = tvb_new_subset(tvb, nvse_local_offset, ext_len-6, ext_len-6);
+ next_tvb = tvb_new_subset_length(tvb, nvse_local_offset, ext_len-6);
if (!dissector_try_uint(mip_nvse_ext_dissector_table, nvse_vendor_org_id, next_tvb, pinfo, ext_tree)){
/*Vendor NVSE Type*/
* FQ-CSID as specified in subclause 12.1.1.2
*/
case 5:
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_gtpv2_fq_csid(next_tvb, pinfo, tree, hdr_item, len, 0, 0);
break;
/* 6, PMIPv6 PDN type indication */
break;
/* 8, Selection Mode */
case 8:
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_gtpv2_selec_mode(next_tvb, pinfo, tree, hdr_item, len, 0, 0);
break;
/* 9, I-WLAN Mobility Access Point Name (APN) */
break;
/* 18, PGW Back-Off Time */
case 18:
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_gtpv2_epc_timer(next_tvb, pinfo, tree, hdr_item, len, 0, 0);
break;
/* 19, Signalling Priority Indication */
proto_item_append_text(hdr_item, ": %s", val_to_str_ext_const(vendorid, &sminmpec_values_ext, "<unknown>"));
offset += 4;
- next_tvb = tvb_new_subset(tvb, offset, optlen-MIP6_VSM_SUBTYPE_OFF, optlen-MIP6_VSM_SUBTYPE_OFF);
+ next_tvb = tvb_new_subset_length(tvb, offset, optlen-MIP6_VSM_SUBTYPE_OFF);
if (!dissector_try_uint(mip6_vsm_dissector_table, vendorid, next_tvb, pinfo, opt_tree)){
proto_tree_add_item(opt_tree, hf_mip6_vsm_subtype, tvb,
offset, MIP6_VSM_SUBTYPE_LEN, ENC_BIG_ENDIAN);
/* Check for full packets within this TS frame */
if (frag_tot_len &&
frag_tot_len <= remaining_len) {
- next_tvb = tvb_new_subset(tvb, offset, frag_tot_len, frag_tot_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, frag_tot_len);
mp2t_dissect_packet(next_tvb, pid_analysis->pload_type, pinfo, tree);
remaining_len -= frag_tot_len;
offset += frag_tot_len;
proto_tree_add_item(sub_tree, hf_dsmcc_adaptation_ca_length, tvb,
offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- sub_tvb = tvb_new_subset(tvb, offset, ca_len, ca_len);
+ sub_tvb = tvb_new_subset_length(tvb, offset, ca_len);
call_dissector(data_handle, sub_tvb, pinfo, tree);
} else if (2 == type) {
pi = proto_tree_add_text(tree, tvb, offset, -1, "Adaptation Header");
offset += 2;
if (0 < adaptation_len) {
- sub_tvb = tvb_new_subset(tvb, offset, adaptation_len, adaptation_len);
+ sub_tvb = tvb_new_subset_length(tvb, offset, adaptation_len);
dissect_dsmcc_adaptation_header(sub_tvb, pinfo, sub_tree);
offset += adaptation_len;
}
offset, 1, ENC_BIG_ENDIAN);
offset +=1;
- sub_tvb = tvb_new_subset(tvb, offset, sect_len-9, sect_len-9);
+ sub_tvb = tvb_new_subset_length(tvb, offset, sect_len-9);
switch (tid) {
case DSMCC_TID_LLCSNAP:
/* TODO: Add support */
header_length = tvb_get_guint8(tvb, 8);
if (header_length > 0) {
int flags = tvb_get_guint8(tvb, 7);
- tvbuff_t *header_data = tvb_new_subset(tvb, offset / 8,
- header_length, header_length);
+ tvbuff_t *header_data = tvb_new_subset_length(tvb, offset / 8,
+ header_length);
dissect_mpeg_pes_header_data(header_data, pinfo, tree, flags);
offset += header_length * 8;
/* length may be zero for Video stream */
mstp_tvb_pdu_len -= 2;
if (mstp_frame_type < 128) {
vendorid = 0;
- next_tvb = tvb_new_subset(tvb, offset,
- mstp_tvb_pdu_len, mstp_frame_pdu_len);
+ next_tvb = tvb_new_subset_length(tvb, offset,
+ mstp_tvb_pdu_len);
} else {
/* With Vendor ID */
vendorid = tvb_get_ntohs(tvb, offset);
if (use_extended_sequence_numbers) {
sif_sio_length = tvb_length(su_tvb) - EXTENDED_HEADER_LENGTH;
- sif_sio_tvb = tvb_new_subset(su_tvb, EXTENDED_SIO_OFFSET, sif_sio_length, sif_sio_length);
+ sif_sio_tvb = tvb_new_subset_length(su_tvb, EXTENDED_SIO_OFFSET, sif_sio_length);
} else {
sif_sio_length = tvb_length(su_tvb) - HEADER_LENGTH;
- sif_sio_tvb = tvb_new_subset(su_tvb, SIO_OFFSET, sif_sio_length, sif_sio_length);
+ sif_sio_tvb = tvb_new_subset_length(su_tvb, SIO_OFFSET, sif_sio_length);
}
call_dissector(mtp3_handle, sif_sio_tvb, pinfo, tree);
static guint
heur_mtp3_standard(tvbuff_t *tvb, packet_info *pinfo, guint8 si)
{
-
- guint32 len;
tvbuff_t *payload;
- len = tvb_length(tvb);
switch (si) {
case MTP_SI_SCCP:
{
- payload = tvb_new_subset(tvb, ITU_HEADER_LENGTH, len-ITU_HEADER_LENGTH, len-ITU_HEADER_LENGTH);
+ payload = tvb_new_subset_remaining(tvb, ITU_HEADER_LENGTH);
if (looks_like_valid_sccp(PINFO_FD_NUM(pinfo), payload, ITU_STANDARD)) {
return ITU_STANDARD;
}
- payload = tvb_new_subset(tvb, ANSI_HEADER_LENGTH, len-ANSI_HEADER_LENGTH, len-ANSI_HEADER_LENGTH);
+ payload = tvb_new_subset_remaining(tvb, ANSI_HEADER_LENGTH);
if (looks_like_valid_sccp(PINFO_FD_NUM(pinfo), payload, ANSI_STANDARD)) {
return ANSI_STANDARD;
}
- payload = tvb_new_subset(tvb, ANSI_HEADER_LENGTH, len-ANSI_HEADER_LENGTH, len-ANSI_HEADER_LENGTH);
+ payload = tvb_new_subset_remaining(tvb, ANSI_HEADER_LENGTH);
if (looks_like_valid_sccp(PINFO_FD_NUM(pinfo), payload, CHINESE_ITU_STANDARD)) {
return CHINESE_ITU_STANDARD;
}
- payload = tvb_new_subset(tvb, JAPAN_HEADER_LENGTH, len-JAPAN_HEADER_LENGTH, len-JAPAN_HEADER_LENGTH);
+ payload = tvb_new_subset_remaining(tvb, JAPAN_HEADER_LENGTH);
if (looks_like_valid_sccp(PINFO_FD_NUM(pinfo), payload, JAPAN_STANDARD)) {
return JAPAN_STANDARD;
}
&boundary_line_len, last_boundary);
if (boundary_start > 0) {
gint body_len = boundary_start - body_start;
- tvbuff_t *tmp_tvb = tvb_new_subset(tvb, body_start,
- body_len, body_len);
+ tvbuff_t *tmp_tvb = tvb_new_subset_length(tvb, body_start, body_len);
if (content_type_str) {
item = proto_tree_add_item(tree, hf_nas_eps_cmn_add_info, tvb, offset, len, ENC_NA);
sub_tree = proto_item_add_subtree(item, ett_nas_eps_cmn_add_info);
- new_tvb = tvb_new_subset(tvb, offset, len, len);
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
switch (eps_nas_gen_msg_cont_type) {
case 1:
switch (octet&0x7) {
case 1:
/* IMSI */
- new_tvb = tvb_new_subset(tvb, curr_offset, len, len );
+ new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
digit_str = unpack_eps_mid_digits(new_tvb);
proto_tree_add_string(tree, hf_nas_eps_emm_imsi, new_tvb, 0, -1, digit_str);
break;
case 3:
/* IMEI */
- new_tvb = tvb_new_subset(tvb, curr_offset, len, len );
+ new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
digit_str = unpack_eps_mid_digits(new_tvb);
proto_tree_add_string(tree, hf_nas_eps_emm_imei, new_tvb, 0, -1, digit_str);
break;
sub_tree = proto_item_add_subtree(item, ett_nas_eps_esm_msg_cont);
/* This IE can contain any ESM PDU as defined in subclause 8.3. */
- new_tvb = tvb_new_subset(tvb, curr_offset, len, len );
+ new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
/* Plain NAS message */
disect_nas_eps_esm_msg(new_tvb, pinfo, sub_tree, 0/* offset */);
item = proto_tree_add_item(tree, hf_nas_eps_nas_msg_cont, tvb, curr_offset, len, ENC_NA);
sub_tree = proto_item_add_subtree(item, ett_nas_eps_nas_msg_cont);
- new_tvb = tvb_new_subset(tvb, curr_offset, len, len );
+ new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (gsm_a_dtap_handle)
call_dissector(gsm_a_dtap_handle, new_tvb, pinfo, sub_tree);
* The coding of the value part of the LCS client identity is given
* in subclause 17.7.13 of 3GPP TS 29.002 [15B](GSM MAP).
*/
- new_tvb = tvb_new_subset(tvb, curr_offset, len, len );
+ new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_gsm_map_lcs_LCS_ClientID_PDU( new_tvb, pinfo, tree, NULL );
return(len);
item = proto_tree_add_item(tree, hf_nas_eps_gen_msg_cont, tvb, offset, len, ENC_NA);
sub_tree = proto_item_add_subtree(item, ett_nas_eps_gen_msg_cont);
- new_tvb = tvb_new_subset(tvb, offset, len, len);
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
switch (eps_nas_gen_msg_cont_type) {
case 1:
case 'U': /* unsequenced data packed */
case 'S': /* sequenced data packed */
if (linelen > 1 && nasdaq_itch_handle) {
- new_tvb = tvb_new_subset(tvb, offset,linelen -1,linelen -1);
+ new_tvb = tvb_new_subset_length(tvb, offset,linelen -1);
} else {
proto_tree_add_item(tree, hf_nasdaq_soup_message, tvb, offset, linelen -1, ENC_ASCII|ENC_NA);
}
}
if (tlv_type == WS_NFULA_PAYLOAD)
- next_tvb = tvb_new_subset(tvb, offset + 4, value_len, value_len);
+ next_tvb = tvb_new_subset_length(tvb, offset + 4, value_len);
offset += ((tlv_len + 3) & ~3); /* next TLV aligned to 4B */
}
tvb, offset + 8, 4, ENC_BIG_ENDIAN);
}
- next_tvb = tvb_new_subset(tvb, offset + 12, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset + 12, len);
if (tvb_length(next_tvb) > 0)
call_dissector(mtp_handle, next_tvb, pinfo, tree);
/* Check for overflows, which probably can't happen, but better
offset+=1;
/*proto_tree_add_text(tree, tvb, offset, length-offset, "Offset=%u, remaining %u", offset, length-offset);*/
- next_tvb = tvb_new_subset(tvb, offset, length-offset, length-offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, length-offset);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, tree);
}
*/
if(buffer_id == -1){
/* proto_tree_add_text(tree, tvb, offset, -1, "Packet data"); */
- next_tvb = tvb_new_subset(tvb, offset, length-offset, length-offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, length-offset);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, tree);
}
}
/* dissect data */
col_set_writable(pinfo->cinfo, FALSE);
- next_tvb = tvb_new_subset(tvb, offset, length - offset, length - offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, length - offset);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, data_tree);
/* restore saved state */
/* dissect data */
col_set_writable(pinfo->cinfo, FALSE);
- next_tvb = tvb_new_subset(tvb, offset, length - offset, length - offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, length - offset);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, data_tree);
/* restore saved state */
/* dissect data */
col_set_writable(pinfo->cinfo, FALSE);
- next_tvb = tvb_new_subset(tvb, offset, length - offset, length - offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, length - offset);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, data_tree);
/* restore saved state */
/* dissect data */
col_set_writable(pinfo->cinfo, FALSE);
- next_tvb = tvb_new_subset(tvb, offset, length - offset, length - offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, length - offset);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, data_tree);
/* restore saved state */
if (parentType == OPENWIRE_ACTIVEMQ_TEXT_MESSAGE)
{
dissect_openwire_type(tvb, pinfo, object_tree, offset, hf_openwire_none, OPENWIRE_TYPE_BIG_STRING, type, FALSE);
- next_tvb = tvb_new_subset(tvb, offset, iArrayLength, iArrayLength);
+ next_tvb = tvb_new_subset_length(tvb, offset, iArrayLength);
add_new_data_source(pinfo, next_tvb, "Body");
}
else if (parentType == OPENWIRE_ACTIVEMQ_MAP_MESSAGE)
|| parentType == OPENWIRE_ACTIVEMQ_OBJECT_MESSAGE
|| parentType == OPENWIRE_ACTIVEMQ_BLOB_MESSAGE)
{
- next_tvb = tvb_new_subset(tvb, offset, iArrayLength, iArrayLength);
+ next_tvb = tvb_new_subset_length(tvb, offset, iArrayLength);
add_new_data_source(pinfo, next_tvb, "Body");
expert_add_info(pinfo, array_item, &ei_openwire_body_type_not_supported);
}
{
proto_item* item_b;
tvbuff_t* tvb_next;
- tvb_next = tvb_new_subset(tvb, offset, padding_size, -1);
+ tvb_next = tvb_new_subset_remaining(tvb, offset);
item_b = proto_tree_add_item(tree_a, hf_esmc_padding, tvb_next, 0, -1, ENC_NA);
proto_item_append_text(item_b, ", %d %s%s", padding_size
, "octet", plurality(padding_size,"","s"));
proto_item_append_text (ti, " %s", val_to_str (pl_type, type_vals, "Unknown 0x%02x"));
len = tvb_length_remaining (tvb, 1);
- next_tvb = tvb_new_subset (tvb, 1, len, len);
+ next_tvb = tvb_new_subset_remaining (tvb, 1);
if (pl_type <= PKT_RECV_ACL_DATA) {
/* HCI H1 packages */
tvb, offset, avp_data_length,
"AVP Value (EAP packet)");
avp_eap_tree = proto_item_add_subtree(avp_eap_item, ett_pana_avp);
- eap_tvb = tvb_new_subset(tvb, offset, avp_data_length, avp_data_length);
+ eap_tvb = tvb_new_subset_length(tvb, offset, avp_data_length);
if (eap_handle != NULL) {
call_dissector(eap_handle, eap_tvb, pinfo, avp_eap_tree);
}
tvb, offset, avp_data_length,
"AVP Value (PANA packet)");
avp_encap_tree = proto_item_add_subtree(avp_encap_item, ett_pana_avp);
- encap_tvb = tvb_new_subset(tvb, offset, avp_data_length, avp_data_length);
+ encap_tvb = tvb_new_subset_length(tvb, offset, avp_data_length);
dissect_pana_pdu(encap_tvb, pinfo, avp_encap_tree);
break;
}
tvbuff_t *avp_tvb;
proto_tree *avp_tree;
proto_item *avp_item;
- avp_tvb = tvb_new_subset(tvb, offset, avp_length, avp_length);
+ avp_tvb = tvb_new_subset_length(tvb, offset, avp_length);
avp_item = proto_tree_add_text(pana_tree, tvb, offset, avp_length, "Attribute Value Pairs");
avp_tree = proto_item_add_subtree(avp_item, ett_pana_avp);
offset += 2;
returnLen = userDataLen + 6;
- asterixTVB = tvb_new_subset(tvb, offset, userDataLen, userDataLen);
+ asterixTVB = tvb_new_subset_length(tvb, offset, userDataLen);
if (asterix_handle != NULL)
call_dissector(asterix_handle, asterixTVB, pinfo, parent_tree);
/* length of user data field */
userDataLen = tvb_get_ntohs(tvb, 2);
returnLen = userDataLen + 2;
- asterixTVB = tvb_new_subset(tvb, offset + 2, userDataLen, userDataLen);
+ asterixTVB = tvb_new_subset_length(tvb, offset + 2, userDataLen);
if (asterix_handle != NULL)
call_dissector(asterix_handle, asterixTVB, pinfo, parent_tree);
/* length of user data field */
userDataLen = tvb_get_ntohs(tvb, 2);
returnLen = userDataLen + 2;
- asterixTVB = tvb_new_subset(tvb, offset + 2, userDataLen, userDataLen);
+ asterixTVB = tvb_new_subset_length(tvb, offset + 2, userDataLen);
if (asterix_handle != NULL)
call_dissector(asterix_handle, asterixTVB, pinfo, parent_tree);
}
if (value_tvb)
- *value_tvb = (out_tvb) ? out_tvb : tvb_new_subset(tvb, val_start, val_length, val_length);
+ *value_tvb = (out_tvb) ? out_tvb : tvb_new_subset_length(tvb, val_start, val_length);
return offset;
}
pinfo->flags.in_error_pkt = TRUE;
/* Decode the rejected packet. */
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
if (!dissector_try_uint(ppp_subdissector_table, protocol, next_tvb,
pinfo, fh_tree)) {
call_dissector(data_handle, next_tvb, pinfo, fh_tree);
sub_ti = proto_tree_add_text(sub_tree, tvb,offset, length,
"Information Field");
info_tree = proto_item_add_subtree(sub_ti, ett_pppmux_subframe_info);
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
if (!dissector_try_uint(ppp_subdissector_table, pid, next_tvb, pinfo,
info_tree)) {
{
tvbuff_t* tvb_2;
- tvb_2 = tvb_new_subset(tvb, 0, PWC_SIZEOF_CW, PWC_SIZEOF_CW);
+ tvb_2 = tvb_new_subset_length(tvb, 0, PWC_SIZEOF_CW);
call_dissector_with_data(dh_control_word, tvb_2, pinfo, tree, &pd);
tvb_2 = tvb_new_subset_remaining(tvb, (PWC_SIZEOF_CW-1));
{
tvbuff_t* tvb_2;
- tvb_2 = tvb_new_subset(tvb, 0, PWC_SIZEOF_CW, PWC_SIZEOF_CW);
+ tvb_2 = tvb_new_subset_length(tvb, 0, PWC_SIZEOF_CW);
call_dissector_with_data(dh_control_word, tvb_2, pinfo, tree, &pd);
tvb_2 = tvb_new_subset_remaining(tvb, PWC_SIZEOF_CW);
union wtap_pseudo_header* pseudo_header_save;
union wtap_pseudo_header ph;
- tvb_3 = tvb_new_subset(tvb_2, 0, payload_size, payload_size);
+ tvb_3 = tvb_new_subset_length(tvb_2, 0, payload_size);
/* prepare pseudo header for atm aal5 decoding */
pseudo_header_save = pinfo->pseudo_header;
pinfo->pseudo_header = &ph;
{
tvbuff_t* tvb_2;
- tvb_2 = tvb_new_subset(tvb, 0, PWC_SIZEOF_CW, PWC_SIZEOF_CW);
+ tvb_2 = tvb_new_subset_length(tvb, 0, PWC_SIZEOF_CW);
call_dissector_with_data(dh_control_word, tvb_2, pinfo, tree, &pd);
tvb_2 = tvb_new_subset_remaining(tvb, PWC_SIZEOF_CW);
{
tvbuff_t* tvb;
proto_item* item2;
- tvb = tvb_new_subset(tvb_original, 0, PWC_SIZEOF_CW, PWC_SIZEOF_CW);
+ tvb = tvb_new_subset_length(tvb_original, 0, PWC_SIZEOF_CW);
item2 = proto_tree_add_item(tree2, hf_cw, tvb, 0, -1, ENC_NA);
pwc_item_append_cw(item2,tvb_get_ntohl(tvb, 0),FALSE);
{
{
proto_item* item2;
tvbuff_t* tvb;
- tvb = tvb_new_subset(tvb_original, PWC_SIZEOF_CW, payload_size, payload_size);
+ tvb = tvb_new_subset_length(tvb_original, PWC_SIZEOF_CW, payload_size);
item2 = proto_tree_add_item(tree2, hf_payload, tvb, 0, -1, ENC_NA);
pwc_item_append_text_n_items(item2,(int)payload_size,"octet");
if (properties & PWC_PAY_SIZE_BAD)
if (payload_size > 0)
{
tvbuff_t *tvb_payload;
- tvb_payload = tvb_new_subset(tvb, encaps_size, payload_size, payload_size);
+ tvb_payload = tvb_new_subset_length(tvb, encaps_size, payload_size);
call_dissector( fr_stripped_address_handle, tvb_payload, pinfo, tree );
}
return;
{
tvbuff_t* tvb;
proto_item* item2;
- tvb = tvb_new_subset(tvb_original, 0, PWC_SIZEOF_CW, PWC_SIZEOF_CW);
+ tvb = tvb_new_subset_length(tvb_original, 0, PWC_SIZEOF_CW);
item2 = proto_tree_add_item(tree2, hf_cw, tvb, 0, -1, ENC_NA);
pwc_item_append_cw(item2, tvb_get_ntohl(tvb, 0),FALSE);
{
{
proto_item* item2;
tvbuff_t* tvb;
- tvb = tvb_new_subset(tvb_original, PWC_SIZEOF_CW, payload_size, payload_size);
+ tvb = tvb_new_subset_length(tvb_original, PWC_SIZEOF_CW, payload_size);
item2 = proto_tree_add_item(tree2, hf_payload, tvb, 0, -1, ENC_NA);
pwc_item_append_text_n_items(item2,(int)payload_size,"octet");
{
switch (octet) {
case Q931_PROTOCOL_DISCRIMINATOR_USER:
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
proto_tree_add_uint_format_value(tree, hf_q931_user_information_len, tvb, offset, len, len, "%d octets", len);
if (!dissector_try_heuristic(q931_user_heur_subdissector_list, next_tvb, pinfo, tree, &hdtbl_entry, NULL)) {
call_dissector_only(data_handle, next_tvb, pinfo, tree, NULL);
*/
if (dissector_get_uint_handle(codeset_dissector_table, codeset) ||
dissector_get_uint_handle(ie_dissector_table, (codeset << 8) | (info_element & Q931_IE_SO_IDENTIFIER_MASK))) {
- next_tvb = tvb_new_subset (tvb, offset, 1, 1);
+ next_tvb = tvb_new_subset_length (tvb, offset, 1);
if (dissector_try_uint(ie_dissector_table, (codeset << 8) | (info_element & Q931_IE_SO_IDENTIFIER_MASK), next_tvb, pinfo, q931_tree) ||
dissector_try_uint(codeset_dissector_table, codeset, next_tvb, pinfo, q931_tree)) {
offset += 1;
* whether we're building a
* protocol tree or not.
*/
- h225_tvb = tvb_new_subset(tvb,
- offset + 4, info_element_len - 1,
- info_element_len - 1);
+ h225_tvb = tvb_new_subset_length(tvb,
+ offset + 4, info_element_len - 1);
call_dissector(h225_handle, h225_tvb,
pinfo, root_tree);
} else {
*/
if (dissector_get_uint_handle(codeset_dissector_table, codeset) ||
dissector_get_uint_handle(ie_dissector_table, (codeset << 8) | info_element)) {
- next_tvb = tvb_new_subset (tvb, offset, info_element_len + 2, info_element_len + 2);
+ next_tvb = tvb_new_subset_length (tvb, offset, info_element_len + 2);
if (dissector_try_uint(ie_dissector_table, (codeset << 8) | info_element, next_tvb, pinfo, q931_tree) ||
dissector_try_uint(codeset_dissector_table, codeset, next_tvb, pinfo, q931_tree)) {
offset += 2 + info_element_len;
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
- arg_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ arg_next_tvb = tvb_new_subset_remaining(tvb, offset);
offset += tvb_length_remaining(tvb, offset);
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
- res_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ res_next_tvb = tvb_new_subset_remaining(tvb, offset);
offset += tvb_length_remaining(tvb, offset);
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA);
- err_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ err_next_tvb = tvb_new_subset_remaining(tvb, offset);
offset += tvb_length_remaining(tvb, offset);
offset = get_ber_identifier(tvb, offset, &appclass, &pc, &tag);
offset = get_ber_length(tvb, offset, &len, NULL);
eoffset = offset + len;
- next_tvb = tvb_new_subset(tvb, hoffset, eoffset - hoffset, eoffset - hoffset);
+ next_tvb = tvb_new_subset_length(tvb, hoffset, eoffset - hoffset);
switch (appclass) {
case BER_CLASS_CON:
switch (tag) {
guint8 command;
int direction;
proto_tree *control_tree = NULL;
- guint rest_length;
tvbuff_t *next_tvb;
command = tvb_get_guint8(tvb, 0);
tvb, 0, 1, command);
}
- rest_length = tvb_reported_length(tvb) - 1;
- next_tvb = tvb_new_subset(tvb, 1, rest_length , rest_length);
+ next_tvb = tvb_new_subset_remaining(tvb, 1);
switch (command) {
case CCREQ_CONNECT:
dissect_quake_CCREQ_CONNECT
proto_tree *quake_tree = NULL;
guint16 flags;
guint32 sequence = 0;
- guint rest_length;
tvbuff_t *next_tvb;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "QUAKE");
}
if (flags == NETFLAG_CTL) {
- rest_length = tvb_reported_length(tvb) - 4;
- next_tvb = tvb_new_subset(tvb, 4, rest_length , rest_length);
+ next_tvb = tvb_new_subset_remaining(tvb, 4);
dissect_quake_control(next_tvb, pinfo, quake_tree);
return;
}
proto_tree_add_uint(quake_tree, hf_quake_header_sequence,
tvb, 4, 4, sequence);
- rest_length = tvb_reported_length(tvb) - 8;
- next_tvb = tvb_new_subset(tvb, 8, rest_length , rest_length);
+ next_tvb = tvb_new_subset_remaining(tvb, 8);
call_dissector(data_handle,next_tvb, pinfo, quake_tree);
}
offset++;
rest_length = tvb_reported_length(tvb) - offset;
if (rest_length)
- next_tvb = tvb_new_subset(tvb, offset,
- rest_length, rest_length);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
else
return;
offset++;
rest_length = tvb_reported_length(tvb) - offset;
if (rest_length)
- next_tvb = tvb_new_subset(tvb, offset, rest_length, rest_length);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
else
return;
rest_length = tvb_reported_length(tvb) - offset;
if (rest_length) {
tvbuff_t *next_tvb =
- tvb_new_subset(tvb, offset, rest_length , rest_length);
+ tvb_new_subset_remaining(tvb, offset);
if (direction == DIR_C2S) {
proto_tree *c_tree = NULL;
/* all the rest is pure game data */
rest_length = tvb_reported_length(tvb) - offset;
if (rest_length) {
- tvbuff_t *next_tvb =
- tvb_new_subset(tvb, offset, rest_length , rest_length);
+ tvbuff_t *next_tvb = tvb_new_subset_remaining(tvb, offset);
if (*direction == DIR_C2S) {
proto_tree *c_tree = NULL;
/* all the rest is pure game data */
rest_length = tvb_reported_length(tvb) - offset;
if (rest_length) {
- tvbuff_t *next_tvb =
- tvb_new_subset(tvb, offset, rest_length , rest_length);
+ tvbuff_t *next_tvb = tvb_new_subset_remaining(tvb, offset);
if (direction == DIR_C2S) {
proto_tree *c_tree = NULL;
tvbuff_t* tvb_value;
const gchar* str;
- tvb_value = tvb_new_subset(tvb, offset, avp_length, (gint) avp_length);
+ tvb_value = tvb_new_subset_length(tvb, offset, avp_length);
str = dictionary_entry->dissector(avp_tree,tvb_value,pinfo);
}
offset += 1;
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector_with_data(pn532_handle, next_tvb, pinfo, tree, usb_conv_info);
offset += length;
proto_tree_add_expert(main_tree, pinfo, &ei_invalid_length_checksum, tvb, offset, 1);
offset += 1;
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector_with_data(pn532_handle, next_tvb, pinfo, tree, usb_conv_info);
offset += length;
break;
case FELICA_212:
case FELICA_424:
- next_tvb = tvb_new_subset(tvb, offset, 5, 5);
+ next_tvb = tvb_new_subset_length(tvb, offset, 5);
call_dissector(sub_handles[SUB_FELICA], next_tvb, pinfo, tree);
offset += 5;
break;
/* Get tvb for passing to LTE PDCP dissector */
if (reassembly_info == NULL) {
- pdcp_tvb = tvb_new_subset(tvb, offset, length, length);
+ pdcp_tvb = tvb_new_subset_length(tvb, offset, length);
}
else {
/* Get combined tvb. */
/* Get tvb for passing to LTE RRC dissector */
if (reassembly_info == NULL) {
- rrc_tvb = tvb_new_subset(tvb, offset, length, length);
+ rrc_tvb = tvb_new_subset_length(tvb, offset, length);
}
else {
/* Get combined tvb. */
/* Get tvb for passing to IP dissector */
if (reassembly_info == NULL) {
- ip_tvb = tvb_new_subset(tvb, offset, length, length);
+ ip_tvb = tvb_new_subset_length(tvb, offset, length);
}
else {
/* Get combined tvb. */
if (len) {
/* Yet unknown, dump as data */
proto_item_set_len (ti, 8);
- new_tvb = tvb_new_subset (tvb, offset, len, len);
+ new_tvb = tvb_new_subset_remaining (tvb, offset);
call_dissector (data_handle, new_tvb, pinfo, top_tree);
}
break;
{
/* L3 PDUs carried on CCCH have L2 PSEUDO LENGTH octet or are RR Short PD format */
proto_tree_add_text(ie_tree, tvb,offset,length,"Link Layer Service Data Unit (L3 Message)(CCCH)");
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_a_ccch_handle, next_tvb, pinfo, top_tree);
}
else if (type == L3_INF_SACCH)
{
/* L3 PDUs carried on SACCH are normal format or are RR Short PD format */
proto_tree_add_text(ie_tree, tvb,offset,length,"Link Layer Service Data Unit (L3 Message)(SACCH)");
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_a_sacch_handle, next_tvb, pinfo, top_tree);
}
else
* as defined in 3GPP TS 24.008 or 3GPP TS 44.018)
*/
proto_tree_add_text(ie_tree, tvb,offset,length,"Link Layer Service Data Unit (L3 Message)");
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_a_dtap_handle, next_tvb, pinfo, top_tree);
}
* as defined in 3GPP TS 44.018.
*/
proto_tree_add_text(ie_tree, tvb,offset,length,"Full Immediate Assign Info field");
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_a_ccch_handle, next_tvb, pinfo, top_tree);
offset = offset + length;
/*
* SMSCB frame
*/
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_cbch_handle, next_tvb, pinfo, top_tree);
offset = offset + length;
*/
proto_tree_add_text(ie_tree, tvb,offset,length,"Layer 3 message");
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_a_ccch_handle, next_tvb, pinfo, top_tree);
offset = offset + length;
* SMSCB Message
*/
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
call_dissector(gsm_cbs_handle, next_tvb, pinfo, top_tree);
offset = ie_offset + length;
gint sub_len;
tvbuff_t *tvb_sub;
sub_len = tvb_get_ntohs(tvb, len2+6);
- tvb_sub = tvb_new_subset(tvb, len2, sub_len, sub_len);
+ tvb_sub = tvb_new_subset_length(tvb, len2, sub_len);
dissect_rsvp_msg_tree(tvb_sub, pinfo, rsvp_tree, TREE(TT_BUNDLE_COMPMSG), rsvph, e2ei);
len2 += sub_len;
}
*/
if (packet_length > 12 &&
dissector_get_uint_handle (rtcp_rtpfb_dissector_table, rtcp_rtpfb_fmt)) {
- tvbuff_t *subtvb = tvb_new_subset(tvb, offset, packet_length - 12, packet_length - 12);
+ tvbuff_t *subtvb = tvb_new_subset_length(tvb, offset, packet_length - 12);
if (dissector_try_uint (rtcp_rtpfb_dissector_table, rtcp_rtpfb_fmt,
subtvb, pinfo, rtcp_tree))
/* tvb == Pass the entire APP payload so the subdissector can have access to the
* entire data set
*/
- next_tvb = tvb_new_subset(tvb, offset-8, app_length+4, app_length+4);
+ next_tvb = tvb_new_subset_length(tvb, offset-8, app_length+4);
/* look for registered sub-dissectors */
if (dissector_try_string(rtcp_dissector_table, ascii_name, next_tvb, pinfo, tree, NULL)) {
/* found subdissector - return tvb_length */
pktbuf = tvb_new_child_real_data(tvb, tp->data.p, tp->have, tp->have);
add_new_data_source(pinfo, pktbuf, "Unchunked RTMP");
} else {
- pktbuf = tvb_new_subset(tvb, tp->data.offset, tp->have, tp->have);
+ pktbuf = tvb_new_subset_length(tvb, tp->data.offset, tp->have);
}
dissect_rtmpt(pktbuf, pinfo, tree, rconv, cdir, tp);
}
wmem_tree_insert32(rconv->packets[cdir], tp->lastseq, tp);
- pktbuf = tvb_new_subset(tvb, tp->data.offset, tp->have, tp->have);
+ pktbuf = tvb_new_subset_length(tvb, tp->data.offset, tp->have);
dissect_rtmpt(pktbuf, pinfo, tree, rconv, cdir, tp);
offset += tp->want;
return;
if (offset > 0) {
- tvbuff_t *tvbrtmp = tvb_new_subset(tvb, offset, remain, remain);
+ tvbuff_t *tvbrtmp = tvb_new_subset_length(tvb, offset, remain);
dissect_rtmpt_common(tvbrtmp, pinfo, tree, rconv, cdir, seq, lastackseq);
} else {
dissect_rtmpt_common(tvb, pinfo, tree, rconv, cdir, seq, lastackseq);
found_match = TRUE;
if (p_conv_data->bta2dp_info->content_protection_type == BTAVDTP_CONTENT_PROTECTION_TYPE_SCMS_T) {
- nexttvb = tvb_new_subset(newtvb, 0, 1, 1);
+ nexttvb = tvb_new_subset_length(newtvb, 0, 1);
call_dissector(bta2dp_content_protection_header_scms_t, nexttvb, pinfo, tree);
suboffset = 1;
}
found_match = TRUE;
if (p_conv_data->btvdp_info->content_protection_type == BTAVDTP_CONTENT_PROTECTION_TYPE_SCMS_T) {
- nexttvb = tvb_new_subset(newtvb, 0, 1, 1);
+ nexttvb = tvb_new_subset_length(newtvb, 0, 1);
call_dissector(btvdp_content_protection_header_scms_t, nexttvb, pinfo, tree);
suboffset = 1;
}
}
ext_offset ++;
- subtvb = tvb_new_subset(tvb, ext_offset, ext_length, ext_length);
+ subtvb = tvb_new_subset_length(tvb, ext_offset, ext_length);
if (!dissector_try_uint (rtp_hdr_ext_rfc5285_dissector_table, ext_id, subtvb, pinfo, rtp_hext_rfc5285_tree)) {
if (rtp_hext_tree)
proto_tree_add_item(rtp_hext_rfc5285_tree, hf_rtp_ext_rfc5285_data, subtvb, 0, ext_length, ENC_NA );
ext_offset += 2;
- subtvb = tvb_new_subset(tvb, ext_offset, ext_length, ext_length);
+ subtvb = tvb_new_subset_length(tvb, ext_offset, ext_length);
if (ext_length && !dissector_try_uint (rtp_hdr_ext_rfc5285_dissector_table, ext_id, subtvb, pinfo, rtp_hext_rfc5285_tree)) {
proto_tree_add_item(rtp_hext_rfc5285_tree, hf_rtp_ext_rfc5285_data, subtvb, 0, ext_length, ENC_NA );
}
}
/* pass interpretation of header extension to a registered subdissector */
- newtvb = tvb_new_subset(tvb, offset, hdr_extension_len * 4, hdr_extension_len * 4);
+ newtvb = tvb_new_subset_length(tvb, offset, hdr_extension_len * 4);
if (hdr_extension_id == RTP_RFC5215_ONE_BYTE_SIG) {
dissect_rtp_hext_rfc5215_onebyte (newtvb, pinfo, rtp_hext_tree);
/* If we have even more bytes their meaning is unknown - we have seen this
* in live captures */
if (hlen > 6) {
- next_tvb = tvb_new_subset(tvb, 6, hlen-6, hlen-6);
+ next_tvb = tvb_new_subset_length(tvb, 6, hlen-6);
call_dissector(data_handle, next_tvb, pinfo, rudp_tree);
}
}
/* octet 2 - 83 CBS-Message-Information-Page 1 */
cbs_page_item = proto_tree_add_item(subtree, hf_sabp_cb_msg_inf_page, tvb, offset, 82, ENC_BIG_ENDIAN);
cb_inf_msg_len = tvb_get_guint8(tvb,offset+82);
- page_tvb = tvb_new_subset(tvb, offset, cb_inf_msg_len, cb_inf_msg_len);
+ page_tvb = tvb_new_subset_length(tvb, offset, cb_inf_msg_len);
unpacked_tvb = dissect_cbs_data(sms_encoding, page_tvb, subtree, pinfo, 0);
len = tvb_length(unpacked_tvb);
if (unpacked_tvb != NULL){
if (param_len == 0)
RETURN_FALSE;
- param_tvb = tvb_new_subset(tvb, called_ptr+1, param_len, param_len);
+ param_tvb = tvb_new_subset_length(tvb, called_ptr+1, param_len);
if (!sccp_called_calling_looks_valid(frame_num, param_tvb, my_mtp3_standard, !is_connectionless(msgtype)))
RETURN_FALSE;
if (param_len == 0)
RETURN_FALSE;
- param_tvb = tvb_new_subset(tvb, calling_ptr+1, param_len, param_len);
+ param_tvb = tvb_new_subset_length(tvb, calling_ptr+1, param_len);
if (!sccp_called_calling_looks_valid(frame_num, param_tvb, my_mtp3_standard, !is_connectionless(msgtype)))
RETURN_FALSE;
if (length < offset)
return;
- signals_tvb = tvb_new_subset(tvb, offset, (length - offset),
- (length - offset));
+ signals_tvb = tvb_new_subset_length(tvb, offset, (length - offset));
digits_tree = dissect_sccp_gt_address_information(signals_tvb, pinfo, gt_tree,
(length - offset),
if (length < offset)
return;
- gt_tvb = tvb_new_subset(tvb, offset, (length - offset),
- (length - offset));
+ gt_tvb = tvb_new_subset_length(tvb, offset, (length - offset));
dissect_sccp_global_title(gt_tvb, pinfo, call_tree, (length - offset), gti,
(routing_ind == ROUTE_ON_GT), called);
}
if (gti != AI_GTI_NO_GT) {
if (length < offset)
return;
- gt_tvb = tvb_new_subset(tvb, offset, (length - offset),
- (length - offset));
+ gt_tvb = tvb_new_subset_length(tvb, offset, (length - offset));
dissect_sccp_global_title(gt_tvb, pinfo, call_tree, (length - offset), gti,
(routing_ind == ROUTE_ON_GT), called);
}
}
- parameter_tvb = tvb_new_subset(tvb, offset, parameter_length, parameter_length);
+ parameter_tvb = tvb_new_subset_length(tvb, offset, parameter_length);
switch (parameter_type) {
proto_tree_add_expert_format(tree, pinfo, &ei_osd_attr_length_invalid,
tvb, 0, attribute_length, "%s", apn->name);
} else {
- tvbuff_t *next_tvb = tvb_new_subset(tvb, offset, attribute_length, attribute_length);
+ tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset, attribute_length);
apn->dissector(next_tvb, pinfo, tree, lun_info, apn);
}
}
if (hf != hf_unknown)
{
DINDENT();
- call_sdp_subdissector(tvb_new_subset(tvb, offset + tokenoffset,
- linelen - tokenoffset,
+ call_sdp_subdissector(tvb_new_subset_length(tvb, offset + tokenoffset,
linelen - tokenoffset),
pinfo,
hf, NULL, linelen-tokenoffset, transport_info, &media_info);
sub_ti = proto_tree_add_string(sdp_tree, hf, tvb, offset, linelen,
string);
- call_sdp_subdissector(tvb_new_subset(tvb, offset + tokenoffset,
- linelen - tokenoffset,
+ call_sdp_subdissector(tvb_new_subset_length(tvb, offset + tokenoffset,
linelen - tokenoffset),
pinfo,
hf, sub_ti, linelen-tokenoffset,
selfm_tvb = clean_telnet_iac(pinfo, tvb, 0, length);
}
else {
- selfm_tvb = tvb_new_subset( tvb, 0, length, length);
+ selfm_tvb = tvb_new_subset_length( tvb, 0, length);
}
for (idx = 0; idx < SERCOS_SLAVE_GROUP_SIZE; ++idx) /* each MDT of CP1/2 has data for 128 different slaves */
{
- tvb_n = tvb_new_subset(tvb, 6 * idx, 6, 6); /* subset for service channel data */
+ tvb_n = tvb_new_subset_length(tvb, 6 * idx, 6); /* subset for service channel data */
ti = proto_tree_add_text(subtree_svc, tvb_n, 0, 6, "Device %u", idx + devstart);
subtree = proto_item_add_subtree(ti, ett_siii_mdt_svc_channel);
dissect_siii_mdt_svc(tvb_n, pinfo, subtree, idx + devstart);
- tvb_n = tvb_new_subset(tvb, SERCOS_SLAVE_GROUP_SIZE * 6 + 4 * idx, 2, 2); /* subset for device control information */
+ tvb_n = tvb_new_subset_length(tvb, SERCOS_SLAVE_GROUP_SIZE * 6 + 4 * idx, 2); /* subset for device control information */
ti = proto_tree_add_text(subtree_devctrl, tvb_n, 0, 2, "Device %u", idx + devstart);
subtree = proto_item_add_subtree(ti, ett_siii_mdt_dev_control);
switch (t_phase) /* call the MDT dissector depending on the current communication phase */
{
case COMMUNICATION_PHASE_0: /* CP0 */
- tvb_n = tvb_new_subset(tvb, 6, 40, 40);
+ tvb_n = tvb_new_subset_length(tvb, 6, 40);
dissect_siii_mdt_cp0(tvb_n, pinfo, subtree);
break;
case COMMUNICATION_PHASE_1: /* CP1 */
case COMMUNICATION_PHASE_2: /* CP2 */
- tvb_n = tvb_new_subset(tvb, 6, 1280, 1280);
+ tvb_n = tvb_new_subset_length(tvb, 6, 1280);
dissect_siii_mdt_cp1_2(tvb_n, pinfo, subtree, telno);
break;
for (idx = 0; idx < SERCOS_SLAVE_GROUP_SIZE; ++idx) /* each AT of CP1/2 has data of 128 different slaves */
{
- tvb_n = tvb_new_subset(tvb, 6 * idx, 6, 6); /* subset for service channel data */
+ tvb_n = tvb_new_subset_length(tvb, 6 * idx, 6); /* subset for service channel data */
ti = proto_tree_add_text(subtree_svc, tvb_n, 0, 6, "Device %u", idx + devstart);
subtree = proto_item_add_subtree(ti, ett_siii_at_svc_channel);
dissect_siii_at_svc(tvb_n, pinfo, subtree, idx + devstart);
- tvb_n = tvb_new_subset(tvb, SERCOS_SLAVE_GROUP_SIZE * 6 + 4 * idx, 2, 2); /* subset for device status information */
+ tvb_n = tvb_new_subset_length(tvb, SERCOS_SLAVE_GROUP_SIZE * 6 + 4 * idx, 2); /* subset for device status information */
ti = proto_tree_add_text(subtree_devstat, tvb_n, 0, 2, "Device %u", idx + devstart);
subtree = proto_item_add_subtree(ti, ett_siii_at_dev_status);
switch (phase) /* call the AT dissector depending on the current communication phase */
{
case COMMUNICATION_PHASE_0: /* CP0 */
- tvb_n = tvb_new_subset(tvb, 6, 1024, 1024);
+ tvb_n = tvb_new_subset_length(tvb, 6, 1024);
dissect_siii_at_cp0(tvb_n, pinfo, subtree);
break;
case COMMUNICATION_PHASE_1: /* CP1 */
case COMMUNICATION_PHASE_2: /* CP2 */
- tvb_n = tvb_new_subset(tvb, 6, 1280, 1280);
+ tvb_n = tvb_new_subset_length(tvb, 6, 1280);
dissect_siii_at_cp1_2(tvb_n, pinfo, subtree, telno);
break;
/* Yes - call presentation dissector */
tvbuff_t *next_tvb;
- next_tvb = tvb_new_subset(tvb, offset, param_len, param_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, param_len);
/* Pass the session pdu to the presentation dissector */
call_dissector_with_data(pres_handle, next_tvb, pinfo, tree, session);
}
/* Octets 3 to 253 contain the SMS message (i.e. CP DATA, CP ACK or CP ERROR)
* as defined in subclause 7.2 of 3GPP TS 24.011 [10]
*/
- new_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
if (gsm_a_dtap_handle) {
call_dissector(gsm_a_dtap_handle, new_tvb, pinfo, tree);
}
}
if ( decompress ) {
- msg_tvb = tvb_new_subset(tvb, offset, msg_len, msg_len);
+ msg_tvb = tvb_new_subset_length(tvb, offset, msg_len);
/*
* buff = Where "state" will be stored
* p_id_start = Partial state identifier start pos in the buffer(buff)
udvm_tvb = tvb_new_child_real_data(tvb, buff,state_length+state_address,state_length+state_address);
add_new_data_source(pinfo, udvm_tvb, "State/ExecutionTrace");
- udvm2_tvb = tvb_new_subset(udvm_tvb, state_address, state_length, state_length);
+ udvm2_tvb = tvb_new_subset_length(udvm_tvb, state_address, state_length);
udvm_exe_item = proto_tree_add_item(sigcomp_tree, hf_udvm_execution_trace,
udvm2_tvb, 0, state_length,
ENC_NA);
" %u (0x%x) bytes", bytecode_len, bytecode_len);
sigcomp_udvm_tree = proto_item_add_subtree( udvm_bytecode_item, ett_sigcomp_udvm);
- udvm_tvb = tvb_new_subset(tvb, offset, len, len);
+ udvm_tvb = tvb_new_subset_length(tvb, offset, len);
if ( dissect_udvm_code )
dissect_udvm_bytecode(udvm_tvb, sigcomp_udvm_tree, destination);
}
if ( decompress ){
- msg_tvb = tvb_new_subset(tvb, offset, msg_len, msg_len);
+ msg_tvb = tvb_new_subset_length(tvb, offset, msg_len);
udvm_exe_item = proto_tree_add_item(sigcomp_tree, hf_udvm_execution_trace,
tvb, bytecode_offset, bytecode_len,
ext_hdr_handle = dissector_get_string_handle(ext_hdr_subdissector_table, header_name);
if (ext_hdr_handle != NULL) {
tvbuff_t *next_tvb2;
- next_tvb2 = tvb_new_subset(tvb, value_offset, value_len, value_len);
+ next_tvb2 = tvb_new_subset_length(tvb, value_offset, value_len);
dissector_try_string(ext_hdr_subdissector_table, header_name, next_tvb2, pinfo, proto_item_add_subtree(ti_c, ett_sip_ext_hdr), NULL);
} else {
expert_add_info_format(pinfo, ti_c, &ei_sip_unrecognized_header,
/* If we have a SIP diagnostics sub dissector call it */
if(sip_diag_handle){
- next_tvb = tvb_new_subset(tvb, offset, diag_len, diag_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, diag_len);
call_dissector(sip_diag_handle, next_tvb, pinfo, tree);
}
}
}
if (data_length <= (guint32)len) {
- next_tvb = tvb_new_subset(tvb, data_offset,
- data_length, data_length);
+ next_tvb = tvb_new_subset_length(tvb, data_offset,
+ data_length);
}
if (next_tvb != NULL) {
GSList *GSL_iterator;
/* Create a new tvb to point to the payload data */
- data_tvb = tvb_new_subset(tvb, dataoffset, datalen, datalen);
+ data_tvb = tvb_new_subset_length(tvb, dataoffset, datalen);
/* Create the eo_info to pass to the listener */
eo_info = wmem_new(wmem_packet_scope(), smb_eo_t);
ett_smb_secblob);
CHECK_BYTE_COUNT(sbloblen);
- blob_tvb = tvb_new_subset(tvb, offset, sbloblen,
- sbloblen);
+ blob_tvb = tvb_new_subset_length(tvb, offset, sbloblen);
if (si && si->ct && si->ct->raw_ntlmssp &&
(tvb_strneql(tvb, offset, "NTLMSSP", 7) == 0)) {
if (pc>tvb_length_remaining(tvb, po)) {
p_tvb = tvb_new_subset(tvb, po, tvb_length_remaining(tvb, po), pc);
} else {
- p_tvb = tvb_new_subset(tvb, po, pc, pc);
+ p_tvb = tvb_new_subset_length(tvb, po, pc);
}
} else {
p_tvb = NULL;
if (dc>tvb_length_remaining(tvb, od)) {
d_tvb = tvb_new_subset(tvb, od, tvb_length_remaining(tvb, od), dc);
} else {
- d_tvb = tvb_new_subset(tvb, od, dc, dc);
+ d_tvb = tvb_new_subset_length(tvb, od, dc);
}
} else {
d_tvb = NULL;
if (sl>tvb_length_remaining(tvb, so)) {
s_tvb = tvb_new_subset(tvb, so, tvb_length_remaining(tvb, so), sl);
} else {
- s_tvb = tvb_new_subset(tvb, so, sl, sl);
+ s_tvb = tvb_new_subset_length(tvb, so, sl);
}
} else {
s_tvb = NULL;
* A tvbuff containing the setup words and
* the pipe path.
*/
- sp_tvb = tvb_new_subset(tvb, spo, spc, spc);
+ sp_tvb = tvb_new_subset_length(tvb, spo, spc);
/*
* A tvbuff containing the parameters and the
* A tvbuff containing the setup words and
* the mailslot path.
*/
- sp_tvb = tvb_new_subset(tvb, spo, spc, spc);
+ sp_tvb = tvb_new_subset_length(tvb, spo, spc);
dissected_trans = dissect_mailslot_smb(sp_tvb,
s_tvb, d_tvb, an+10, pinfo, top_tree_global, si);
}
if ((2*sc) > tvb_length_remaining(tvb, offset)) {
s_tvb = tvb_new_subset(tvb, offset, tvb_length_remaining(tvb, offset), 2*sc);
} else {
- s_tvb = tvb_new_subset(tvb, offset, 2*sc, 2*sc);
+ s_tvb = tvb_new_subset_length(tvb, offset, 2*sc);
}
sp_tvb = tvb_new_subset_remaining(tvb, offset);
} else {
if (pd_tvb) {
/* OK we have reassembled data, extract d_tvb and p_tvb from it */
if (tp) {
- p_tvb = tvb_new_subset(pd_tvb, 0, tp, tp);
+ p_tvb = tvb_new_subset_length(pd_tvb, 0, tp);
}
if (td) {
- d_tvb = tvb_new_subset(pd_tvb, tp, td, td);
+ d_tvb = tvb_new_subset_length(pd_tvb, tp, td);
}
} else {
/* It was not reassembled. Do as best as we can.
gchar **aux_string_v;
/* Create a new tvb to point to the payload data */
- data_tvb = tvb_new_subset(tvb, dataoffset, length, length);
+ data_tvb = tvb_new_subset_length(tvb, dataoffset, length);
/* Create the eo_info to pass to the listener */
eo_info = wmem_new(wmem_packet_scope(), smb_eo_t);
/* Fill in eo_info */
}
done_decryption:
#endif
- *enc_tvb = tvb_new_subset(tvb, offset, sti->size, sti->size);
+ *enc_tvb = tvb_new_subset_length(tvb, offset, sti->size);
if (plain_data != NULL) {
*plain_tvb = tvb_new_child_real_data(*enc_tvb, plain_data, sti->size, sti->size);
1, parameter_len);
offset += 2;
- dcomp_tvb = tvb_new_subset(tvb, offset, parameter_len, parameter_len);
+ dcomp_tvb = tvb_new_subset_length(tvb, offset, parameter_len);
parse_compression_parameters(dcomp_tvb, dcomp_tree, TRUE);
offset += parameter_len;
1, parameter_len);
offset += 2;
- pcomp_tvb = tvb_new_subset(tvb, offset, parameter_len, parameter_len);
+ pcomp_tvb = tvb_new_subset_length(tvb, offset, parameter_len);
parse_compression_parameters(pcomp_tvb, pcomp_tree, FALSE);
offset += parameter_len;
pt_value = proto_item_add_subtree(pi_value,ett_value);
if (value_len > 0 && oid_string) {
- tvbuff_t* sub_tvb = tvb_new_subset(tvb, value_offset, value_len, value_len);
+ tvbuff_t* sub_tvb = tvb_new_subset_length(tvb, value_offset, value_len);
next_tvb_add_string(&var_list, sub_tvb, (snmp_var_in_tree) ? pt_value : NULL, value_sub_dissectors_table, oid_string);
}
ti = proto_tree_add_text(tree, tvb, offset - 9, Data_Size + 9, "RGB JPEG Image, Alpha channel (%u bytes)", Data_Size);
JPEG_tree = proto_item_add_subtree(ti, ett_JPEG);
- jpeg_tvb = tvb_new_subset(tvb, offset, JPEG_Size, JPEG_Size);
+ jpeg_tvb = tvb_new_subset_length(tvb, offset, JPEG_Size);
call_dissector(jpeg_handle, jpeg_tvb, pinfo, JPEG_tree);
offset += JPEG_Size;
ti = proto_tree_add_text(tree, tvb, offset, JPEG_Size + 4, "JPEG Image (%u bytes)", JPEG_Size);
JPEG_tree = proto_item_add_subtree(ti, ett_JPEG);
- jpeg_tvb = tvb_new_subset(tvb, offset + 4, JPEG_Size, JPEG_Size);
+ jpeg_tvb = tvb_new_subset_length(tvb, offset + 4, JPEG_Size);
call_dissector(jpeg_handle, jpeg_tvb, pinfo, JPEG_tree);
return JPEG_Size + 4;
proto_tree_add_item(tree, hf_display_stream_data_size, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
proto_tree_add_text(tree, tvb, offset, data_size, "Stream data");
- jpeg_tvb = tvb_new_subset(tvb, offset, data_size, data_size);
+ jpeg_tvb = tvb_new_subset_length(tvb, offset, data_size);
call_dissector(jpeg_handle, jpeg_tvb, pinfo, tree);
offset += data_size;
break;
*/
return offset;
}
- pinfo->gssapi_encrypted_tvb = tvb_new_subset(
- tvb, offset, len, len);
+ pinfo->gssapi_encrypted_tvb = tvb_new_subset_length(
+ tvb, offset, len);
}
/* if this is KRB5 wrapped rc4-hmac */
as well ?
*/
if(!pinfo->gssapi_wrap_tvb){
- pinfo->gssapi_wrap_tvb = tvb_new_subset(
+ pinfo->gssapi_wrap_tvb = tvb_new_subset_length(
tvb, start_offset-2,
- GSS_ARCFOUR_WRAP_TOKEN_SIZE,
GSS_ARCFOUR_WRAP_TOKEN_SIZE);
}
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
inner_token_len = tvb_reported_length_remaining(tvb, offset) -
ec;
- pinfo->gssapi_wrap_tvb = tvb_new_subset(tvb, offset,
- inner_token_len, inner_token_len);
+ pinfo->gssapi_wrap_tvb = tvb_new_subset_length(tvb, offset,
+ inner_token_len);
offset += inner_token_len;
as well ?
*/
if(!pinfo->gssapi_wrap_tvb){
- pinfo->gssapi_wrap_tvb = tvb_new_subset(
+ pinfo->gssapi_wrap_tvb = tvb_new_subset_length(
tvb, start_offset-2,
- offset - (start_offset-2),
offset - (start_offset-2));
}
}
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
{
- tvbuff_t *checksum_tvb = tvb_new_subset(tvb, 16, checksum_size, checksum_size);
+ tvbuff_t *checksum_tvb = tvb_new_subset_length(tvb, 16, checksum_size);
if (pinfo->gssapi_data_encrypted) {
if(pinfo->gssapi_encrypted_tvb){
NULL, HFILL }},
/*--- End of included file: packet-spnego-hfarr.c ---*/
-#line 1409 "../../asn1/spnego/packet-spnego-template.c"
+#line 1407 "../../asn1/spnego/packet-spnego-template.c"
};
/* List of subtrees */
&ett_spnego_InitialContextToken_U,
/*--- End of included file: packet-spnego-ettarr.c ---*/
-#line 1419 "../../asn1/spnego/packet-spnego-template.c"
+#line 1417 "../../asn1/spnego/packet-spnego-template.c"
};
/* Register protocol */
proto_tree_add_item(srp_tree,hf_srp_seqno,tvb,1,1,ENC_BIG_ENDIAN);
payload_len = tvb_reported_length_remaining(tvb,4);
- next_tvb = tvb_new_subset(tvb, 2, payload_len, payload_len );
+ next_tvb = tvb_new_subset_length(tvb, 2, payload_len);
/* XXX currently, we always dissect as CCSRL. It's only that in
* H324/Annex C though.
* Therefore, we know that the captured length of the payload is
* equal to the length of the payload.
*/
- next_tvb = tvb_new_subset(tvb, 0, reported_length, reported_length);
+ next_tvb = tvb_new_subset_length(tvb, 0, reported_length);
if (sscop_info.type == SSCOP_SD)
{
call_dissector(payload_handle, next_tvb, pinfo, tree);
proto_tree_add_uint(att_tree, hf_stun_att_padding, tvb, offset+att_length, pad, pad);
}
- next_tvb = tvb_new_subset(tvb, offset, att_length, att_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, att_length);
if (!dissector_try_heuristic(heur_subdissector_list, next_tvb, pinfo, att_tree, &hdtbl_entry, NULL)) {
call_dissector_only(data_handle, next_tvb, pinfo, att_tree, NULL);
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
/* If we have a SUA Info String sub dissector call it */
if(sua_info_str_handle) {
- next_tvb = tvb_new_subset(parameter_tvb, INFO_STRING_OFFSET, info_string_length, info_string_length);
+ next_tvb = tvb_new_subset_length(parameter_tvb, INFO_STRING_OFFSET, info_string_length);
call_dissector(sua_info_str_handle, next_tvb, pinfo, parameter_tree);
return;
}
if(data_tvb)
{
- *data_tvb = tvb_new_subset(parameter_tvb, PARAMETER_VALUE_OFFSET, data_length, data_length);
+ *data_tvb = tvb_new_subset_length(parameter_tvb, PARAMETER_VALUE_OFFSET, data_length);
}
}
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
switch(version) {
case SUA_V08:
dissect_v8_parameter(parameter_tvb, pinfo, tree, data_tvb, source_ssn, dest_ssn);
sua_source_gt = NULL;
sua_destination_gt = NULL;
- common_header_tvb = tvb_new_subset(message_tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(message_tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH);
dissect_common_header(common_header_tvb, pinfo, sua_tree);
parameters_tvb = tvb_new_subset_remaining(message_tvb, COMMON_HEADER_LENGTH);
((flags&FLAGS_UNENCRYPTED)?"":"Encrypted "), request?"Request":"Reply" );
if( flags&FLAGS_UNENCRYPTED ) {
- new_tvb = tvb_new_subset( tvb, TAC_PLUS_HDR_SIZE, len, len );
+ new_tvb = tvb_new_subset_length( tvb, TAC_PLUS_HDR_SIZE, len );
} else {
new_tvb=NULL;
if( key && *key ){
comp_offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
comp_offset = dissect_ber_length(actx->pinfo, tree, tvb, comp_offset, &len, &ind_field);
/* we can believe the length now */
-next_tvb = tvb_new_subset(tvb, offset, len+comp_offset-offset, len+comp_offset-offset);
+next_tvb = tvb_new_subset_length(tvb, offset, len+comp_offset-offset);
if (!next_tvb)
return comp_offset;
if (len-(2*ind_field)) /*should always be positive unless we get an empty contructor pointless? */
{
- next_tvb = tvb_new_subset(tvb, offset, len-(2*ind_field),
- len-(2*ind_field));
+ next_tvb = tvb_new_subset_length(tvb, offset, len-(2*ind_field));
dissect_tcap_param(actx, subtree,next_tvb,0);
}
if (len) /* check for NULLS */
{
- next_tvb = tvb_new_subset(tvb, offset, len, len);
+ next_tvb = tvb_new_subset_length(tvb, offset, len);
dissect_ber_octet_string(TRUE, actx, tree, next_tvb, 0,
hf_tcap_data, NULL);
}
data_len = iac_offset - offset;
if (data_len > 0) {
if (is_tn3270) {
- next_tvb = tvb_new_subset(tvb, offset, data_len, data_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, data_len);
call_dissector(tn3270_handle, next_tvb, pinfo, telnet_tree);
} else if (is_tn5250) {
- next_tvb = tvb_new_subset(tvb, offset, data_len, data_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, data_len);
call_dissector(tn5250_handle, next_tvb, pinfo, telnet_tree);
} else
telnet_add_text(telnet_tree, tvb, offset, data_len);
if ((remaining_bits)!=0)
byte_len++;
- payload_tvb = tvb_new_subset(tvb, pdu_offset, byte_len, byte_len);
+ payload_tvb = tvb_new_subset_length(tvb, pdu_offset, byte_len);
tetra_dissect_pdu(channel_type, TETRA_UPLINK, payload_tvb, tetra_header_tree, pinfo);
if ((remaining_bits)!=0)
if ((remaining_bits)!=0)
byte_len++;
- payload_tvb = tvb_new_subset(tvb, pdu_offset, byte_len, byte_len);
+ payload_tvb = tvb_new_subset_length(tvb, pdu_offset, byte_len);
tetra_dissect_pdu(channel_type, TETRA_DOWNLINK, payload_tvb, tetra_header_tree, pinfo);
pdu_offset += byte_len;
}
proto_tree_add_text(top_tree, tipc_tvb, offset, msg_in_bundle_size, "Message %u of %u in Bundle (%s)",
msg_no, message_count, val_to_str_const(msg_in_bundle_user, tipcv2_user_short_str_vals, "unknown"));
- data_tvb = tvb_new_subset(tipc_tvb, offset, msg_in_bundle_size, msg_in_bundle_size);
+ data_tvb = tvb_new_subset_length(tipc_tvb, offset, msg_in_bundle_size);
/* the info column shall not be deleted by the
* encapsulated messages */
msg_no++;
msg_in_bundle_size = tvb_get_ntohl(tvb, offset);
proto_tree_add_text(tipc_tree, tvb, offset, msg_in_bundle_size, "%u Message in Bundle", msg_no);
- data_tvb = tvb_new_subset(tvb, offset, msg_in_bundle_size, msg_in_bundle_size);
+ data_tvb = tvb_new_subset_length(tvb, offset, msg_in_bundle_size);
col_set_fence(pinfo->cinfo, COL_INFO);
dissect_tipc(data_tvb, pinfo, tipc_tree, NULL);
offset = offset + msg_in_bundle_size;
if ((guint32)tvb_length_remaining(tvb, offset) < msg_size) {
tipc_tvb = tvb;
} else {
- tipc_tvb = tvb_new_subset(tvb, offset, msg_size, msg_size);
+ tipc_tvb = tvb_new_subset_length(tvb, offset, msg_size);
}
/* user == 7 only works for v2, this will decode the legacy TIPC configuration protocol */
if (user == TIPCv2_LINK_PROTOCOL) version = TIPCv2;
item = proto_tree_add_item(attr_tree, hf_tnef_mapi_props, tvb, offset, length, ENC_NA);
props_tree = proto_item_add_subtree(item, ett_tnef_mapi_props);
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
dissect_mapiprops(next_tvb, pinfo, props_tree);
item = proto_tree_add_item(attr_tree, hf_tnef_attribute_date, tvb, offset, length, ENC_NA);
date_tree = proto_item_add_subtree(item, ett_tnef_attribute_date);
- next_tvb = tvb_new_subset(tvb, offset, length, length);
+ next_tvb = tvb_new_subset_length(tvb, offset, length);
dissect_DTR(next_tvb, pinfo, date_tree);
case 0x16:
{
call_dissector(noe_handle,
- tvb_new_subset(tvb, offset, length, length),
+ tvb_new_subset_length(tvb, offset, length),
pinfo,
tree);
break;
case 0x50: /* Only UA NOE */
{
call_dissector_with_data(ua3g_handle,
- tvb_new_subset(tvb, offset, length, length),
+ tvb_new_subset_length(tvb, offset, length),
pinfo,
tree, &direction);
break;
{
if (direction == SYS_TO_TERM)
{
- call_dissector(ua_sys_to_term_handle, tvb_new_subset(tvb, offset, datalen, datalen), pinfo, tree);
+ call_dissector(ua_sys_to_term_handle, tvb_new_subset_length(tvb, offset, datalen), pinfo, tree);
}
else if (direction == TERM_TO_SYS)
{
- call_dissector(ua_term_to_sys_handle, tvb_new_subset(tvb, offset, datalen, datalen), pinfo, tree);
+ call_dissector(ua_term_to_sys_handle, tvb_new_subset_length(tvb, offset, datalen), pinfo, tree);
}
else
{
{
if (direction == SYS_TO_TERM)
call_dissector(ua_sys_to_term_handle,
- tvb_new_subset(tvb, offset, datalen, datalen),
+ tvb_new_subset_length(tvb, offset, datalen),
pinfo,
tree);
else if (direction == TERM_TO_SYS)
call_dissector(ua_term_to_sys_handle,
- tvb_new_subset(tvb, offset, datalen, datalen),
+ tvb_new_subset_length(tvb, offset, datalen),
pinfo,
tree);
else {
proto_tree *subtree;
ti = proto_tree_add_item(tree, hf_ucp_parm_XSer, tvb, offset, len, ENC_NA);
- tmptvb = tvb_new_subset(tvb, offset, len + 1, len + 1);
+ tmptvb = tvb_new_subset_length(tvb, offset, len + 1);
subtree = proto_item_add_subtree(ti, ett_XSer);
ucp_handle_XSer(subtree, tmptvb);
}
* The Location Estimate field is composed of 1 or more octets with an internal structure
* according to section 7 in [23.032].
*/
- new_tvb = tvb_new_subset(tvb, ie_offset,ie_len, ie_len );
+ new_tvb = tvb_new_subset_length(tvb, ie_offset, ie_len );
dissect_geographical_description(new_tvb, pinfo, urr_ie_tree);
break;
case 9:
*/
proto_tree_add_item(urr_ie_tree, hf_uma_urr_L3_protocol_discriminator, tvb, ie_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(urr_ie_tree, hf_uma_urr_L3_Message, tvb, ie_offset, ie_len, ENC_NA);
- l3_tvb = tvb_new_subset(tvb, ie_offset,ie_len, ie_len );
+ l3_tvb = tvb_new_subset_length(tvb, ie_offset, ie_len );
if (!dissector_try_uint(bssap_pdu_type_table,BSSAP_PDU_TYPE_DTAP, l3_tvb, pinfo, urr_ie_tree))
call_dissector(data_handle, l3_tvb, pinfo, urr_ie_tree);
break;
proto_tree_add_item(urr_ie_tree, hf_uma_urr_L3_protocol_discriminator, tvb, ie_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(urr_ie_tree, hf_uma_urr_L3_Message, tvb, ie_offset, ie_len, ENC_NA);
/* XXX the dissector to call should depend on the RAT type ??? */
- l3_tvb = tvb_new_subset(tvb, ie_offset,ie_len, ie_len );
+ l3_tvb = tvb_new_subset_length(tvb, ie_offset, ie_len );
if (!dissector_try_uint(bssap_pdu_type_table,BSSAP_PDU_TYPE_DTAP, l3_tvb, pinfo, urr_ie_tree))
call_dissector(data_handle, l3_tvb, pinfo, urr_ie_tree);
break;
* The rest of the IE is coded as in [TS 48.018], not including IEI and length, if present
*/
proto_tree_add_item(urr_ie_tree, hf_uma_urr_LLC_PDU, tvb, ie_offset, ie_len, ENC_NA);
- llc_tvb = tvb_new_subset(tvb, ie_offset,ie_len, ie_len );
+ llc_tvb = tvb_new_subset_length(tvb, ie_offset, ie_len );
if (llc_handle) {
col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
col_set_fence(pinfo->cinfo, COL_PROTOCOL);
* The rest of the IE is the INTER RAT HANDOVER INFO coded as in
* [TS 25.331], not including IEI and length, if present
*/
- new_tvb = tvb_new_subset(tvb, ie_offset,ie_len, ie_len );
+ new_tvb = tvb_new_subset_length(tvb, ie_offset, ie_len );
dissect_rrc_InterRATHandoverInfo_PDU(new_tvb, pinfo, urr_ie_tree, NULL);
break;
case 65:
guint16 crc = 0;
guint8 * data = NULL;
/* First create new subset of header with first byte removed. */
- tvbuff_t * headtvb = tvb_new_subset(tvb, 1, header_length-1, header_length-1);
+ tvbuff_t * headtvb = tvb_new_subset_length(tvb, 1, header_length-1);
/* Get data of header with first byte removed. */
data = (guint8 *)tvb_memdup(wmem_packet_scope(), headtvb, 0, header_length-1);
/* Remove first 4 bits of the remaining data which are Header CRC cont. */
/* In the very few test cases I've seen, this seems to be
* BCCH with transparent MAC layer. Therefore skip right to
* rlc_bcch and hope for the best. */
- next_tvb = tvb_new_subset(tvb, offset, (gint)pdu_length[n], (gint)pdu_length[n]);
+ next_tvb = tvb_new_subset_length(tvb, offset, (gint)pdu_length[n]);
call_dissector(rlc_bcch_handle, next_tvb, pinfo, top_level_tree);
offset += (gint)pdu_length[n];
} else { /* Else go for CCCH UM, this seems to work. */
rlcinf->rbid[j] = (guint8)lchid[n]+1;
rlcinf->urnti[j] = p_fp_info->channel; /*We need to fake urnti*/
- next_tvb = tvb_new_subset(tvb, offset, (gint)pdu_length[n], (gint)pdu_length[n]);
+ next_tvb = tvb_new_subset_length(tvb, offset, (gint)pdu_length[n]);
call_dissector(mac_fdd_hsdsch_handle, next_tvb, pinfo, top_level_tree);
next_tvb = tvb_new_subset_remaining(tvb, 10);
if (sub_selected == SUB_PN532) {
- next_tvb= tvb_new_subset(tvb, 10, tvb_get_guint8(tvb, 1), tvb_get_guint8(tvb, 1));
+ next_tvb= tvb_new_subset_length(tvb, 10, tvb_get_guint8(tvb, 1));
call_dissector_with_data(sub_handles[SUB_PN532], next_tvb, pinfo, tree, usb_conv_info);
} else if (sub_selected == SUB_ACR122_PN532) {
pinfo->p2p_dir = P2P_DIR_RECV;
offset = dissect_usb_interface_assn_descriptor(pinfo, parent_tree, tvb, offset, usb_trans_info, usb_conv_info);
break;
default:
- next_tvb = tvb_new_subset(tvb, offset, next_len, next_len);
+ next_tvb = tvb_new_subset_length(tvb, offset, next_len);
if (dissector_try_uint_new(usb_descriptor_dissector_table, usb_conv_info->interfaceClass, next_tvb, pinfo, parent_tree, TRUE, usb_conv_info)) {
offset += next_len;
} else {
(header_info & (USB_HEADER_IS_LINUX | USB_HEADER_IS_64_BYTES))) {
setup_tvb = tvb_new_composite();
- next_tvb = tvb_new_subset(tvb, offset - 7, 7, 7);
+ next_tvb = tvb_new_subset_length(tvb, offset - 7, 7);
tvb_composite_append(setup_tvb, next_tvb);
}
proto_item_set_text(item,"DLT: %d",pinfo->match_uint + 147 - WTAP_ENCAP_USER0);
if (encap->header_size) {
- tvbuff_t* hdr_tvb = tvb_new_subset(tvb, 0, encap->header_size, encap->header_size);
+ tvbuff_t* hdr_tvb = tvb_new_subset_length(tvb, 0, encap->header_size);
call_dissector(encap->header_proto, hdr_tvb, pinfo, tree);
if (encap->header_proto_name) {
const char *proto_name = dissector_handle_get_long_name(find_dissector(encap->header_proto_name));
}
if (encap->trailer_size) {
- tvbuff_t* trailer_tvb = tvb_new_subset(tvb, encap->header_size + len, encap->trailer_size, encap->trailer_size);
+ tvbuff_t* trailer_tvb = tvb_new_subset_length(tvb, encap->header_size + len, encap->trailer_size);
call_dissector(encap->trailer_proto, trailer_tvb, pinfo, tree);
if (encap->trailer_proto_name) {
const char *proto_name = dissector_handle_get_long_name(find_dissector(encap->trailer_proto_name));
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = 1;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
info_element = tvb_get_guint8(tvb, offset);
data_length = tvb_get_guint8(tvb, offset+1)+2;
- info_tvb = tvb_new_subset(tvb, offset, data_length, data_length);
+ info_tvb = tvb_new_subset_length(tvb, offset, data_length);
if (tree) {
ti_info = proto_tree_add_text(tree, info_tvb, info_offset, -1, "Info Element:");
tvbuff_t *protocol_data_tvb;
protocol_data_length = tvb_get_ntohs(layer3_data_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- protocol_data_tvb = tvb_new_subset(layer3_data_tvb, PARAMETER_VALUE_OFFSET, protocol_data_length, protocol_data_length);
+ protocol_data_tvb = tvb_new_subset_length(layer3_data_tvb, PARAMETER_VALUE_OFFSET, protocol_data_length);
call_dissector(v52_handle, protocol_data_tvb, pinfo, v5ua_tree);
tvbuff_t *protocol_data_tvb;
protocol_data_length = tvb_get_ntohs(layer3_data_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
- protocol_data_tvb = tvb_new_subset(layer3_data_tvb, PARAMETER_VALUE_OFFSET, protocol_data_length, protocol_data_length);
+ protocol_data_tvb = tvb_new_subset_length(layer3_data_tvb, PARAMETER_VALUE_OFFSET, protocol_data_length);
call_dissector(q931_handle, protocol_data_tvb, pinfo, v5ua_tree);
proto_item_append_text(parameter_item, " (%u byte%s)", protocol_data_length, plurality(protocol_data_length, "", "s"));
length_2 = msg_length - offset;
if(length_2 > 0){
if(tvb_get_guint8(parameter_tvb, offset) == 0x48){
- layer3_data_tvb = tvb_new_subset(parameter_tvb, offset, length_2, length_2);
+ layer3_data_tvb = tvb_new_subset_length(parameter_tvb, offset, length_2);
dissect_layer3_message(layer3_data_tvb, v5ua_tree, parameter_item, pinfo);
}
}
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
- parameter_tvb = tvb_new_subset(parameters_tvb, offset, total_length, total_length);
+ parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
dissect_parameter(parameter_tvb, pinfo, v5ua_tree);
/* get rid of the handled parameter */
offset += total_length;
{
tvbuff_t *common_header_tvb, *parameters_tvb;
- common_header_tvb = tvb_new_subset(tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH, COMMON_HEADER_LENGTH);
+ common_header_tvb = tvb_new_subset_length(tvb, COMMON_HEADER_OFFSET, COMMON_HEADER_LENGTH);
dissect_common_header(common_header_tvb, pinfo, v5ua_tree);
parameters_tvb = tvb_new_subset_remaining(tvb, COMMON_HEADER_LENGTH);
/* Don't add SNMP stuff to the info column */
col_set_writable(pinfo->cinfo, FALSE);
- snmp_tvb = tvb_new_subset(tvb, offset, length, length);
+ snmp_tvb = tvb_new_subset_length(tvb, offset, length);
/* Continue after SNMP dissection errors */
TRY {
/* Don't add IEEE 802.11 stuff to the info column */
col_set_writable(pinfo->cinfo, FALSE);
- ieee80211_tvb = tvb_new_subset(tvb, offset, length, length);
+ ieee80211_tvb = tvb_new_subset_length(tvb, offset, length);
/* Continue after IEEE 802.11 dissection errors */
TRY {
* the type is 0x1b. I think I've seen this in at least
* one capture.
*/
- name_tvb = tvb_new_subset(winsrepl_tvb, winsrepl_offset, name_len, name_len);
+ name_tvb = tvb_new_subset_length(winsrepl_tvb, winsrepl_offset, name_len);
netbios_add_name("Name", name_tvb, 0, name_tree);
name_type = get_netbios_name(name_tvb, 0, name_str, (NETBIOS_NAME_LEN - 1)*4 + 1);
proto_item_append_text(name_item, ": %s<%02x>", name_str, name_type);
ti = proto_tree_add_string(tree, hf_hdr_profile_diff, tvb, hdr_start, offset - hdr_start,
"(Profile-Diff value as WBXML)");
subtree = proto_item_add_subtree(ti, ett_header);
- tmp_tvb = tvb_new_subset(tvb, val_start + val_len_len, val_len, val_len); /* TODO: fix 2nd length */
+ tmp_tvb = tvb_new_subset_length(tvb, val_start + val_len_len, val_len); /* TODO: fix 2nd length */
call_dissector(wbxml_uaprof_handle, tmp_tvb, pinfo, subtree);
ok = TRUE;
wkh_4_End(hf_hdr_profile_diff);
tvb, 1, len, val_len);
offset = 1 + len;
/* Application-Id headers */
- tmp_tvb = tvb_new_subset(tvb, offset, val_len, val_len);
+ tmp_tvb = tvb_new_subset_length(tvb, offset, val_len);
add_headers (subtree, tmp_tvb, hf_sir_app_id_list, pinfo);
offset += val_len;
tvb, offset, len, val_len);
offset += len;
/* WSP contact point list */
- tmp_tvb = tvb_new_subset (tvb, offset, val_len, val_len);
+ tmp_tvb = tvb_new_subset_length (tvb, offset, val_len);
add_addresses(subtree, tmp_tvb, hf_sir_wsp_contact_points);
/* End of version 0 SIR content */
tvb, offset, len, val_len);
offset += len;
/* Non-WSP contact point list */
- tmp_tvb = tvb_new_subset (tvb, offset, val_len, val_len);
+ tmp_tvb = tvb_new_subset_length(tvb, offset, val_len);
add_addresses(subtree, tmp_tvb, hf_sir_contact_points);
offset += val_len;
}
if (capabilityLength > 0)
{
- tmp_tvb = tvb_new_subset (tvb, offset,
- capabilityLength, capabilityLength);
+ tmp_tvb = tvb_new_subset_length (tvb, offset,
+ capabilityLength);
add_capabilities (wsp_tree, tmp_tvb, pdut);
offset += capabilityLength;
}
if (headerLength > 0)
{
- tmp_tvb = tvb_new_subset (tvb, offset,
- headerLength, headerLength);
+ tmp_tvb = tvb_new_subset_length (tvb, offset,
+ headerLength);
add_headers (wsp_tree, tmp_tvb, hf_wsp_headers_section, pinfo);
}
} /* if (tree) */
headerLength = headersLength - (nextOffset - contentTypeStart);
if (headerLength > 0)
{
- tmp_tvb = tvb_new_subset (tvb, nextOffset,
- headerLength, headerLength);
+ tmp_tvb = tvb_new_subset_length (tvb, nextOffset,
+ headerLength);
add_headers (wsp_tree, tmp_tvb, hf_wsp_headers_section, pinfo);
}
/* XXX - offset is no longer used after this point */
headerLength = headersLength - (nextOffset - contentTypeStart);
if (headerLength > 0)
{
- tmp_tvb = tvb_new_subset (tvb, nextOffset,
- headerLength, headerLength);
+ tmp_tvb = tvb_new_subset_length (tvb, nextOffset,
+ headerLength);
add_headers (wsp_tree, tmp_tvb, hf_wsp_headers_section, pinfo);
}
/* XXX - offset is no longer used after this point */
headerLength = headersLength-(nextOffset-contentTypeStart);
if (headerLength > 0)
{
- tmp_tvb = tvb_new_subset (tvb, nextOffset,
- headerLength, headerLength);
+ tmp_tvb = tvb_new_subset_length (tvb, nextOffset,
+ headerLength);
add_headers (wsp_tree, tmp_tvb, hf_wsp_headers_section, pinfo);
}
/* XXX - offset is no longer used after this point */
HeadersLen -= (nextOffset - offset);
if (HeadersLen > 0)
{
- tmp_tvb = tvb_new_subset (tvb, nextOffset, HeadersLen, HeadersLen);
+ tmp_tvb = tvb_new_subset_length (tvb, nextOffset, HeadersLen);
add_headers (mpart_tree, tmp_tvb, hf_wsp_headers_section, pinfo);
}
offset = nextOffset + HeadersLen;
*
* TODO - handle nested multipart documents.
*/
- tmp_tvb = tvb_new_subset(tvb, offset, DataLen, DataLen);
+ tmp_tvb = tvb_new_subset_length(tvb, offset, DataLen);
/*
* Try finding a dissector for the content
* first, then fallback.
col_append_str(pinfo->cinfo, COL_INFO, ", ");
}
/* Skip the length field for the WTP sub-tvb */
- wtp_tvb = tvb_new_subset(tvb, offCur + c_fieldlen, c_pdulen, c_pdulen);
+ wtp_tvb = tvb_new_subset_length(tvb, offCur + c_fieldlen, c_pdulen);
dissect_wtp_common(wtp_tvb, pinfo, wtp_tree);
offCur += c_fieldlen + c_pdulen;
i++;
tpiLen = 1 + (tByte & 0x03);
if (tree)
{
- tmp_tvb = tvb_new_subset(tvb, offCur + cbHeader + vHeader, tpiLen, tpiLen);
+ tmp_tvb = tvb_new_subset_length(tvb, offCur + cbHeader + vHeader, tpiLen);
wtp_handle_tpi(wtp_tree, tmp_tvb);
}
vHeader += tpiLen;
tvbuff_t *next_tvb;
guint8 *test_string, *tok;
- next_tvb = tvb_new_subset(tvb, offset, attr_length, attr_length);
+ next_tvb = tvb_new_subset_length(tvb, offset, attr_length);
/*
* Service-Data is usually (but not always) plain text, specifically XML.
* If it "looks like" XML (begins with optional whitespace followed by
new_frame->type = XML_FRAME_CDATA;
new_frame->name = NULL;
new_frame->name_orig_case = NULL;
- new_frame->value = tvb_new_subset(tok->tvb, tok->offset, tok->len, tok->len);
+ new_frame->value = tvb_new_subset_length(tok->tvb, tok->offset, tok->len);
insert_xml_frame(current_frame, new_frame);
new_frame->item = pi;
new_frame->last_item = pi;
new_frame->type = XML_FRAME_ATTRIB;
new_frame->name = name;
new_frame->name_orig_case = name_orig_case;
- new_frame->value = tvb_new_subset(value_part->tvb, value_part->offset,
- value_part->len, value_part->len);
+ new_frame->value = tvb_new_subset_length(value_part->tvb, value_part->offset,
+ value_part->len);
insert_xml_frame(current_frame, new_frame);
new_frame->item = pi;
new_frame->last_item = pi;
/* Check for any excess bytes. */
if (offset < tvb_length(tvb)) {
/* There are leftover bytes! */
- guint leftover_len = tvb_length(tvb) - offset;
proto_tree *root;
- tvbuff_t *leftover_tvb = tvb_new_subset(tvb, offset, leftover_len, leftover_len);
+ tvbuff_t *leftover_tvb = tvb_new_subset_remaining(tvb, offset);
/* Get the APS Root. */
root = proto_tree_get_root(tree);
/* Create a tvb for this transaction. */
length = zbee_apf_transaction_len(tvb, offset, type);
- app_tvb = tvb_new_subset(tvb, offset, length, length);
+ app_tvb = tvb_new_subset_length(tvb, offset, length);
/* Call the application dissector. */
call_dissector_with_data(app_dissector, app_tvb, pinfo, tree, data);
} else if (packet.mic_size == 4) {
packet.mic = tvb_get_letohl(tvb, offset + packet.payload_len);
}
- payload_tvb = tvb_new_subset(tvb, offset, packet.payload_len, packet.payload_len);
+ payload_tvb = tvb_new_subset_length(tvb, offset, packet.payload_len);
if (packet.security_level != ZBEE_NWK_GP_SECURITY_LEVEL_FULLENCR) {
dissect_zbee_nwk_gp_cmd(payload_tvb, pinfo, nwk_tree, data);
}
/* There is excess data in the packet. */
if (offset < tvb_length(tvb)) {
/* There are leftover bytes! */
- guint leftover_len = tvb_length(tvb) - offset;
- tvbuff_t *leftover_tvb = tvb_new_subset(tvb, offset, leftover_len, leftover_len);
+ tvbuff_t *leftover_tvb = tvb_new_subset_remaining(tvb, offset);
proto_tree *root = NULL;
/* Correct the length of the command tree. */
if (offset < tvb_length(tvb)) {
/* TODO: There are TLV's to parse. */
/* Bytes leftover! */
- guint leftover_len = tvb_length(tvb) - offset;
- tvbuff_t *leftover_tvb = tvb_new_subset(tvb, offset, leftover_len, leftover_len);
+ tvbuff_t *leftover_tvb = tvb_new_subset_remaining(tvb, offset);
proto_tree *root = NULL;
/* Correct the length of the beacon tree. */
(packet.level == ZBEE_SEC_MIC128)) {
/* Payload is only integrity protected. Just return the sub-tvbuff. */
- return tvb_new_subset(tvb, offset, payload_len, payload_len);
+ return tvb_new_subset_length(tvb, offset, payload_len);
}
#ifdef HAVE_LIBGCRYPT
tvbuff_t *remainder;
if (length > 0) {
- remainder = tvb_new_subset(tvb, offset, length, length);
+ remainder = tvb_new_subset_remaining(tvb, offset);
call_dissector(data_handle, remainder, pinfo, root);
}
tvbuff_t *excess;
if (length > 0) {
- excess = tvb_new_subset(tvb, offset, length, length);
+ excess = tvb_new_subset_remaining(tvb, offset);
call_dissector(data_handle, excess, pinfo, root);
}
} /* zdp_dump_excess */
/* Call the IEEE 802.15.4 dissector */
if (!((zep_data.version>=2) && (zep_data.type==ZEP_V2_TYPE_ACK))) {
- next_tvb = tvb_new_subset(tvb, zep_header_len, ieee_packet_len, ieee_packet_len);
+ next_tvb = tvb_new_subset_length(tvb, zep_header_len, ieee_packet_len);
call_dissector(next_dissector, next_tvb, pinfo, tree);
}
} /* dissect_ieee802_15_4 */
"5 CM Identification");
cmid_tree =
proto_item_add_subtree (cmid_it, ett_docsis_bpkmattr_cmid);
- cmid_tvb = tvb_new_subset (tvb, pos, length, length);
+ cmid_tvb = tvb_new_subset_length (tvb, pos, length);
dissect_attrs (cmid_tvb, pinfo, cmid_tree);
break;
case BPKM_DISPLAY_STR:
proto_tree_add_text (tree, tvb, pos, length, "13 TEK Parameters");
tekp_tree =
proto_item_add_subtree (tekp_it, ett_docsis_bpkmattr_tekp);
- tekp_tvb = tvb_new_subset (tvb, pos, length, length);
+ tekp_tvb = tvb_new_subset_length (tvb, pos, length);
dissect_attrs (tekp_tvb, pinfo, tekp_tree);
break;
case BPKM_OBSOLETED:
"19 Security Capabilities");
scap_tree =
proto_item_add_subtree (scap_it, ett_docsis_bpkmattr_scap);
- scap_tvb = tvb_new_subset (tvb, pos, length, length);
+ scap_tvb = tvb_new_subset_length (tvb, pos, length);
dissect_attrs (scap_tvb, pinfo, scap_tree);
break;
case BPKM_CRYPTO_SUITE:
proto_tree_add_text (tree, tvb, pos, length, "23 SA Descriptor");
sadsc_tree =
proto_item_add_subtree (sadsc_it, ett_docsis_bpkmattr_sadsc);
- sadsc_tvb = tvb_new_subset (tvb, pos, length, length);
+ sadsc_tvb = tvb_new_subset_length (tvb, pos, length);
dissect_attrs (sadsc_tvb, pinfo, sadsc_tree);
break;
case BPKM_SA_TYPE:
proto_tree_add_text (tree, tvb, pos, length, "25 SA Query");
saqry_tree =
proto_item_add_subtree (saqry_it, ett_docsis_bpkmattr_saqry);
- saqry_tvb = tvb_new_subset (tvb, pos, length, length);
+ saqry_tvb = tvb_new_subset_length (tvb, pos, length);
dissect_attrs (saqry_tvb, pinfo, saqry_tree);
break;
case BPKM_SA_QUERY_TYPE:
"28 Download Parameters");
dnld_tree =
proto_item_add_subtree (dnld_it, ett_docsis_bpkmattr_dnld);
- dnld_tvb = tvb_new_subset (tvb, pos, length, length);
+ dnld_tvb = tvb_new_subset_length (tvb, pos, length);
dissect_attrs (dnld_tvb, pinfo, dnld_tree);
break;
default:
/* sub-dissectors are based on the type field */
type = tvb_get_guint8 (tvb, 18);
msg_len = tvb_get_ntohs (tvb, 12);
- payload_tvb = tvb_new_subset (tvb, 20, msg_len - 6, msg_len - 6);
+ payload_tvb = tvb_new_subset_length (tvb, 20, msg_len - 6);
if (dissector_try_uint
(docsis_mgmt_dissector_table, type, payload_tvb, pinfo, tree))
}
break;
case TLV_TCC_UCD:
- ucd_tvb = tvb_new_subset (tvb, pos, length, length);
+ ucd_tvb = tvb_new_subset_length (tvb, pos, length);
call_dissector (docsis_ucd_handle, ucd_tvb, pinfo, tcc_tree);
break;
case TLV_TCC_RNG_SID:
dissect_rcp_rcv_ch(tvb, rcp_tree, pos, length);
break;
case TLV_RCP_VEN_SPEC:
- vsif_tvb = tvb_new_subset (tvb, pos, length, length);
+ vsif_tvb = tvb_new_subset_length (tvb, pos, length);
call_dissector (docsis_vsif_handle, vsif_tvb, pinfo, rcp_tree);
break;
} /* switch */
dissect_rcc_rcv_ch(tvb, rcc_tree, pos, length);
break;
case TLV_RCP_VEN_SPEC:
- vsif_tvb = tvb_new_subset (tvb, pos, length, length);
+ vsif_tvb = tvb_new_subset_length (tvb, pos, length);
call_dissector (docsis_vsif_handle, vsif_tvb, pinfo, rcc_tree);
break;
case TLV_RCC_ERR:
}
break;
case TLV_VENDOR_SPEC:
- vsif_tvb = tvb_new_subset (tvb, pos, length, length);
+ vsif_tvb = tvb_new_subset_length (tvb, pos, length);
call_dissector (docsis_vsif_handle, vsif_tvb, pinfo, tlv_tree);
break;
case TLV_DUT_FILTER:
if ( eoe.anEoeHeaderDataUnion.v.Fragment == 0 )
{
- next_tvb = tvb_new_subset(tvb, offset, eoe_length-offset, eoe_length-offset);
+ next_tvb = tvb_new_subset_length(tvb, offset, eoe_length-offset);
call_dissector( eth_handle, next_tvb, pinfo, ecat_eoe_tree);
}
else
offset+=ETHERCAT_MBOX_HEADER_LEN;
- next_tvb = tvb_new_subset (tvb, offset, hdr.Length, hdr.Length);
+ next_tvb = tvb_new_subset_length (tvb, offset, hdr.Length);
switch ( hdr.aControlUnion.v.Type )
{
case ETHERCAT_MBOX_TYPE_ADS:
{
if ( eth_withoutfcs_handle != NULL )
{
- next_tvb = tvb_new_subset(tvb, 0, esl_length-SIZEOF_ESLHEADER, esl_length-SIZEOF_ESLHEADER);
+ next_tvb = tvb_new_subset_length(tvb, 0, esl_length-SIZEOF_ESLHEADER);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, tree);
}
- next_tvb = tvb_new_subset(tvb, esl_length-SIZEOF_ESLHEADER, SIZEOF_ESLHEADER, SIZEOF_ESLHEADER);
+ next_tvb = tvb_new_subset_length(tvb, esl_length-SIZEOF_ESLHEADER, SIZEOF_ESLHEADER);
dissect_esl_header(next_tvb, pinfo, tree);
modify_times(tvb, esl_length-SIZEOF_ESLHEADER, pinfo);
{
const guint MBoxLength = mbox.Length + 6 /* MBOX header length */;
- next_tvb = tvb_new_subset(tvb, suboffset, MBoxLength, MBoxLength);
+ next_tvb = tvb_new_subset_length(tvb, suboffset, MBoxLength);
call_dissector(ecat_mailbox_handle, next_tvb, pinfo, ecat_datagram_tree);
if( tree )
length = msglen + 3 - (msglen + 3) % 4;
item = proto_tree_add_text(pt, tvb, offset, length, "Response block %d", i);
tree = proto_item_add_subtree (item, ett_gryphon_cmd_response_block);
- next_tvb = tvb_new_subset(tvb, offset, msglen, msglen);
+ next_tvb = tvb_new_subset_length(tvb, offset, msglen);
dissect_gryphon_message(next_tvb, NULL, tree, TRUE);
offset += length;
}
proto_tree_add_item(ctrl_tree, hf_control_len, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
{
- tvbuff_t *cvalue = tvb_new_subset(tvb, offset, clen, clen);
+ tvbuff_t *cvalue = tvb_new_subset_length(tvb, offset, clen);
call_dissector(data_handle, cvalue, pinfo, ctrl_tree);
offset += clen;
}
actual_fcs, calculated_fcs);
}
}
- return tvb_new_subset(tvb, 0, len, len);
+ return tvb_new_subset_length(tvb, 0, len);
}
{
if(wimax_fch_burst_handle)
{ /* call FCH dissector */
- call_dissector(wimax_fch_burst_handle, tvb_new_subset(tvb, offset, length, length), pinfo, tree);
+ call_dissector(wimax_fch_burst_handle, tvb_new_subset_length(tvb, offset, length), pinfo, tree);
}
else /* display FCH info */
{ /* update the info column */
{
if(wimax_cdma_code_burst_handle)
{ /* call CDMA dissector */
- call_dissector(wimax_cdma_code_burst_handle, tvb_new_subset(tvb, offset, length, length), pinfo, tree);
+ call_dissector(wimax_cdma_code_burst_handle, tvb_new_subset_length(tvb, offset, length), pinfo, tree);
}
else /* display CDMA Code Attribute info */
{ /* update the info column */
}
if(frag_type == TLV_NO_FRAG)
{ /* not fragmented PDU */
- pdu_tvb = tvb_new_subset(tvb, offset, length, length);
+ pdu_tvb = tvb_new_subset_length(tvb, offset, length);
}
else /* fragmented PDU */
{ /* add the fragment */
{
if(wimax_ffb_burst_handle)
{ /* display the TLV Fast Feedback Burst dissector info */
- call_dissector(wimax_ffb_burst_handle, tvb_new_subset(tvb, offset, length, length), pinfo, tree);
+ call_dissector(wimax_ffb_burst_handle, tvb_new_subset_length(tvb, offset, length), pinfo, tree);
}
else /* display the Fast Feedback Burst info */
{ /* update the info column */
{
if(wimax_hack_burst_handle)
{ /* call the TLV HARQ ACK Bursts dissector */
- call_dissector(wimax_hack_burst_handle, tvb_new_subset(tvb, offset, length, length), pinfo, tree);
+ call_dissector(wimax_hack_burst_handle, tvb_new_subset_length(tvb, offset, length), pinfo, tree);
}
else /* display the TLV HARQ ACK Bursts info */
{ /* update the info column */
{
if(wimax_phy_attributes_burst_handle)
{ /* call the TLV PDU Burst Physical Attributes dissector */
- call_dissector(wimax_phy_attributes_burst_handle, tvb_new_subset(tvb, offset, length, length), pinfo, tree);
+ call_dissector(wimax_phy_attributes_burst_handle, tvb_new_subset_length(tvb, offset, length), pinfo, tree);
}
else /* display the TLV PDU Burst Physical Attributes info */
{ /* update the info column */
u16BodyLength -= 6;
- new_tvb = tvb_new_subset(tvb, offset, u16BodyLength, u16BodyLength);
+ new_tvb = tvb_new_subset_length(tvb, offset, u16BodyLength);
dissect_blocks(new_tvb, 0, pinfo, tree, drep);
offset += u16BodyLength;
u16BodyLength -= 6;
- new_tvb = tvb_new_subset(tvb, offset, u16BodyLength, u16BodyLength);
+ new_tvb = tvb_new_subset_length(tvb, offset, u16BodyLength);
dissect_blocks(new_tvb, 0, pinfo, tree, drep);
offset += u16BodyLength;
u16BodyLength -= 2;
/* sub blocks */
- new_tvb = tvb_new_subset(tvb, offset, u16BodyLength, u16BodyLength);
+ new_tvb = tvb_new_subset_length(tvb, offset, u16BodyLength);
dissect_blocks(new_tvb, 0, pinfo, tree, drep);
offset += u16BodyLength;
u16BodyLength -= 2;
/* sub blocks */
- new_tvb = tvb_new_subset(tvb, offset, u16BodyLength, u16BodyLength);
+ new_tvb = tvb_new_subset_length(tvb, offset, u16BodyLength);
dissect_blocks(new_tvb, 0, pinfo, tree, drep);
offset += u16BodyLength;
proto_item_append_text(item, ": Api:0x%x Slot:%u Subslot:0x%x",
u32Api, u16SlotNr, u16SubslotNr);
- new_tvb = tvb_new_subset(tvb, offset, u16BodyLength-10, u16BodyLength-10);
+ new_tvb = tvb_new_subset_length(tvb, offset, u16BodyLength-10);
offset = dissect_blocks(new_tvb, 0, pinfo, tree, drep);
/*offset += u16BodyLength;*/
offset = dissect_IODWriteReq(tvb, offset, pinfo, tree, drep, ar);
}
} else {
- tvbuff_t *new_tvb = tvb_new_subset(tvb, offset, u32RecDataLen, u32RecDataLen);
+ tvbuff_t *new_tvb = tvb_new_subset_length(tvb, offset, u32RecDataLen);
/* RecordDataWrite */
offset += dissect_RecordDataWrite(new_tvb, 0, pinfo, tree, drep, u16Index, u32RecDataLen);
pinfo->private_data = GUINT_TO_POINTER( (guint32) u16FrameID);
/* get frame user data tvb (without header and footer) */
- next_tvb = tvb_new_subset(tvb, 2, data_len, data_len);
+ next_tvb = tvb_new_subset_length(tvb, 2, data_len);
/* ask heuristics, if some sub-dissector is interested in this packet payload */
if (!dissector_try_heuristic(heur_subdissector_list, next_tvb, pinfo, tree, &hdtbl_entry, NULL)) {