summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-skinny.c328
-rw-r--r--tools/SkinnyProtocolOptimized.xml3
-rwxr-xr-xtools/parse_xml2skinny_dissector.py74
3 files changed, 203 insertions, 202 deletions
diff --git a/epan/dissectors/packet-skinny.c b/epan/dissectors/packet-skinny.c
index 69f1eaf1e8..66b8169cb3 100644
--- a/epan/dissectors/packet-skinny.c
+++ b/epan/dissectors/packet-skinny.c
@@ -119,7 +119,7 @@ static const value_string message_id[] = {
{ 0x0021, "MulticastMediaReceptionAck" },
{ 0x0022, "OpenReceiveChannelAck" },
{ 0x0023, "ConnectionStatisticsRes" },
- { 0x0024, "OffHookWithCgpn" },
+ { 0x0024, "OffHookWithCalingPartyNumber" },
{ 0x0025, "SoftKeySetReq" },
{ 0x0026, "SoftKeyEvent" },
{ 0x0027, "UnregisterReq" },
@@ -158,6 +158,7 @@ static const value_string message_id[] = {
{ 0x0083, "StopTone" },
{ 0x0085, "SetRinger" },
{ 0x0086, "SetLamp" },
+ { 0x0087, "SetHookFlashDetect" },
{ 0x0088, "SetSpeakerMode" },
{ 0x0089, "SetMicroMode" },
{ 0x008a, "StartMediaTransmission" },
@@ -2662,10 +2663,10 @@ handle_CapabilitiesResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skin
guint32 payloadCapability = 0;
capCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_capCount, 4, ENC_LITTLE_ENDIAN);
- if (capCount <= 16) { /* tvb struct size guard */
+ if (capCount <= 18) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "caps [ref: capCount = %d, max:18]", capCount);
- if (capCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (capCount * 16) && capCount <= 18) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "caps [ref:capCount = %d, max:18]", capCount);
+ if (capCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (capCount * 16) && capCount <= 18) {
for (counter_1 = 0; counter_1 < 18; counter_1++) {
if (counter_1 < capCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "caps [%d / %d]", counter_1 + 1, capCount);
@@ -2727,7 +2728,7 @@ handle_CapabilitiesResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skin
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (capCount * 16)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (capCount * 16));
}
skinny_reqrep_add_response(cursor, pinfo, skinny_conv, 0x009b);
}
@@ -2852,7 +2853,7 @@ handle_ConnectionStatisticsResMessage(ptvcursor_t *cursor, packet_info * pinfo _
}
/*
- * Message: OffHookWithCgpnMessage
+ * Message: OffHookWithCalingPartyNumberMessage
* Opcode: 0x0024
* Type: CallControl
* Direction: dev2pbx
@@ -2860,7 +2861,7 @@ handle_ConnectionStatisticsResMessage(ptvcursor_t *cursor, packet_info * pinfo _
* MsgType: event
*/
static void
-handle_OffHookWithCgpnMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny_conv_info_t * skinny_conv _U_)
+handle_OffHookWithCalingPartyNumberMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny_conv_info_t * skinny_conv _U_)
{
guint32 hdr_version = tvb_get_letohl(ptvcursor_tvbuff(cursor), 4);
guint32 VariableDirnumSize = (hdr_version >= V18_MSG_TYPE) ? 25 : 24;
@@ -3083,10 +3084,10 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_add(cursor, hf_skinny_RTPPayloadFormat, 4, ENC_LITTLE_ENDIAN);
customPictureFormatCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_customPictureFormatCount, 4, ENC_LITTLE_ENDIAN);
- if (customPictureFormatCount <= 20) { /* tvb struct size guard */
+ if (customPictureFormatCount <= 6) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [ref: customPictureFormatCount = %d, max:6]", customPictureFormatCount);
- if (customPictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (customPictureFormatCount * 20) && customPictureFormatCount <= 6) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [ref:customPictureFormatCount = %d, max:6]", customPictureFormatCount);
+ if (customPictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (customPictureFormatCount * 20) && customPictureFormatCount <= 6) {
for (counter_1 = 0; counter_1 < 6; counter_1++) {
if (counter_1 < customPictureFormatCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [%d / %d]", counter_1 + 1, customPictureFormatCount);
@@ -3103,7 +3104,7 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (customPictureFormatCount * 20)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (customPictureFormatCount * 20));
}
{
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "confResources");
@@ -3111,10 +3112,10 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_add(cursor, hf_skinny_maxBW, 4, ENC_LITTLE_ENDIAN);
serviceResourceCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_serviceResourceCount, 4, ENC_LITTLE_ENDIAN);
- if (serviceResourceCount <= 24) { /* tvb struct size guard */
+ if (serviceResourceCount <= 4) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [ref: serviceResourceCount = %d, max:4]", serviceResourceCount);
- if (serviceResourceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (serviceResourceCount * 24) && serviceResourceCount <= 4) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [ref:serviceResourceCount = %d, max:4]", serviceResourceCount);
+ if (serviceResourceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (serviceResourceCount * 24) && serviceResourceCount <= 4) {
for (counter_2 = 0; counter_2 < 4; counter_2++) {
if (counter_2 < serviceResourceCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [%d / %d]", counter_2 + 1, serviceResourceCount);
@@ -3130,7 +3131,7 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_advance(cursor, 4);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: layouts */
+ ptvcursor_pop_subtree(cursor);
} else {
ptvcursor_advance(cursor, (5 * 4)); /* guard kicked in -> skip the rest */;
}
@@ -3146,14 +3147,14 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (serviceResourceCount * 24)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (serviceResourceCount * 24));
}
ptvcursor_pop_subtree(cursor);
}
- if (audioCapCount <= 16) { /* tvb struct size guard */
+ if (audioCapCount <= 18) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [ref: audioCapCount = %d, max:18]", audioCapCount);
- if (audioCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (audioCapCount * 16) && audioCapCount <= 18) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [ref:audioCapCount = %d, max:18]", audioCapCount);
+ if (audioCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (audioCapCount * 16) && audioCapCount <= 18) {
for (counter_1 = 0; counter_1 < 18; counter_1++) {
if (counter_1 < audioCapCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [%d / %d]", counter_1 + 1, audioCapCount);
@@ -3215,12 +3216,12 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (audioCapCount * 16)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (audioCapCount * 16));
}
- if (videoCapCount <= 44) { /* tvb struct size guard */
+ if (videoCapCount <= 10) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [ref: videoCapCount = %d, max:10]", videoCapCount);
- if (videoCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (videoCapCount * 44) && videoCapCount <= 10) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [ref:videoCapCount = %d, max:10]", videoCapCount);
+ if (videoCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (videoCapCount * 44) && videoCapCount <= 10) {
for (counter_1 = 0; counter_1 < 10; counter_1++) {
if (counter_1 < videoCapCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [%d / %d]", counter_1 + 1, videoCapCount);
@@ -3229,10 +3230,10 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_add(cursor, hf_skinny_videoCapabilityDirection, 4, ENC_LITTLE_ENDIAN);
levelPreferenceCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_levelPreferenceCount, 4, ENC_LITTLE_ENDIAN);
- if (levelPreferenceCount <= 24) { /* tvb struct size guard */
+ if (levelPreferenceCount <= 4) {
guint32 counter_5 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [ref: levelPreferenceCount = %d, max:4]", levelPreferenceCount);
- if (levelPreferenceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (levelPreferenceCount * 24) && levelPreferenceCount <= 4) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [ref:levelPreferenceCount = %d, max:4]", levelPreferenceCount);
+ if (levelPreferenceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (levelPreferenceCount * 24) && levelPreferenceCount <= 4) {
for (counter_5 = 0; counter_5 < 4; counter_5++) {
if (counter_5 < levelPreferenceCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [%d / %d]", counter_5 + 1, levelPreferenceCount);
@@ -3250,7 +3251,7 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (levelPreferenceCount * 24)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (levelPreferenceCount * 24));
}
if (payloadCapability == MEDIA_PAYLOAD_H261) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "payloadCapability is Media_Payload_H261");
@@ -3322,12 +3323,12 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (videoCapCount * 44)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (videoCapCount * 44));
}
- if (dataCapCount <= 16) { /* tvb struct size guard */
+ if (dataCapCount <= 5) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [ref: dataCapCount = %d, max:5]", dataCapCount);
- if (dataCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (dataCapCount * 16) && dataCapCount <= 5) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [ref:dataCapCount = %d, max:5]", dataCapCount);
+ if (dataCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (dataCapCount * 16) && dataCapCount <= 5) {
for (counter_1 = 0; counter_1 < 5; counter_1++) {
if (counter_1 < dataCapCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [%d / %d]", counter_1 + 1, dataCapCount);
@@ -3343,7 +3344,7 @@ handle_UpdateCapabilitiesMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (dataCapCount * 16)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (dataCapCount * 16));
}
}
@@ -3523,10 +3524,10 @@ handle_AuditConferenceResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_add(cursor, hf_skinny_last, 4, ENC_LITTLE_ENDIAN);
numberOfEntries = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_numberOfEntries, 4, ENC_LITTLE_ENDIAN);
- if (numberOfEntries <= 76) { /* tvb struct size guard */
+ if (numberOfEntries <= 32) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "conferenceEntry [ref: numberOfEntries = %d, max:32]", numberOfEntries);
- if (numberOfEntries && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (numberOfEntries * 76) && numberOfEntries <= 32) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "conferenceEntry [ref:numberOfEntries = %d, max:32]", numberOfEntries);
+ if (numberOfEntries && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (numberOfEntries * 76) && numberOfEntries <= 32) {
for (counter_1 = 0; counter_1 < 32; counter_1++) {
if (counter_1 < numberOfEntries) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "conferenceEntry [%d / %d]", counter_1 + 1, numberOfEntries);
@@ -3545,7 +3546,7 @@ handle_AuditConferenceResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (numberOfEntries * 76)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (numberOfEntries * 76));
}
skinny_reqrep_add_response(cursor, pinfo, skinny_conv, 0x013c);
}
@@ -3569,9 +3570,9 @@ handle_AuditParticipantResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_,
ptvcursor_add(cursor, hf_skinny_conferenceID, 4, ENC_LITTLE_ENDIAN);
numberOfEntries = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_numberOfEntries, 4, ENC_LITTLE_ENDIAN);
- if (numberOfEntries <= 256) { /* tvb integer size guard */
+ if (numberOfEntries <= 256) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "participantEntry [ref: numberOfEntries = %d, max:256]", numberOfEntries);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "participantEntry [ref:numberOfEntries = %d, max:256]", numberOfEntries);
for (counter_2 = 0; counter_2 < 256; counter_2++) {
if (counter_2 < numberOfEntries) {
ptvcursor_add(cursor, hf_skinny_participantEntry, 4, ENC_LITTLE_ENDIAN);
@@ -3579,9 +3580,9 @@ handle_AuditParticipantResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_,
ptvcursor_advance(cursor, 4);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: participantEntry */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (256 * 4)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (256 * 4));
}
skinny_reqrep_add_response(cursor, pinfo, skinny_conv, 0x013d ^ conferenceID);
}
@@ -3680,10 +3681,10 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_add(cursor, hf_skinny_RTPPayloadFormat, 4, ENC_LITTLE_ENDIAN);
customPictureFormatCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_customPictureFormatCount, 4, ENC_LITTLE_ENDIAN);
- if (customPictureFormatCount <= 20) { /* tvb struct size guard */
+ if (customPictureFormatCount <= 6) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [ref: customPictureFormatCount = %d, max:6]", customPictureFormatCount);
- if (customPictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (customPictureFormatCount * 20) && customPictureFormatCount <= 6) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [ref:customPictureFormatCount = %d, max:6]", customPictureFormatCount);
+ if (customPictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (customPictureFormatCount * 20) && customPictureFormatCount <= 6) {
for (counter_1 = 0; counter_1 < 6; counter_1++) {
if (counter_1 < customPictureFormatCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [%d / %d]", counter_1 + 1, customPictureFormatCount);
@@ -3700,7 +3701,7 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (customPictureFormatCount * 20)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (customPictureFormatCount * 20));
}
{
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "confResources");
@@ -3708,10 +3709,10 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_add(cursor, hf_skinny_maxBW, 4, ENC_LITTLE_ENDIAN);
serviceResourceCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_serviceResourceCount, 4, ENC_LITTLE_ENDIAN);
- if (serviceResourceCount <= 24) { /* tvb struct size guard */
+ if (serviceResourceCount <= 4) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [ref: serviceResourceCount = %d, max:4]", serviceResourceCount);
- if (serviceResourceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (serviceResourceCount * 24) && serviceResourceCount <= 4) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [ref:serviceResourceCount = %d, max:4]", serviceResourceCount);
+ if (serviceResourceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (serviceResourceCount * 24) && serviceResourceCount <= 4) {
for (counter_2 = 0; counter_2 < 4; counter_2++) {
if (counter_2 < serviceResourceCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [%d / %d]", counter_2 + 1, serviceResourceCount);
@@ -3727,7 +3728,7 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_advance(cursor, 4);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: layouts */
+ ptvcursor_pop_subtree(cursor);
} else {
ptvcursor_advance(cursor, (5 * 4)); /* guard kicked in -> skip the rest */;
}
@@ -3743,14 +3744,14 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (serviceResourceCount * 24)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (serviceResourceCount * 24));
}
ptvcursor_pop_subtree(cursor);
}
- if (audioCapCount <= 16) { /* tvb struct size guard */
+ if (audioCapCount <= 18) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [ref: audioCapCount = %d, max:18]", audioCapCount);
- if (audioCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (audioCapCount * 16) && audioCapCount <= 18) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [ref:audioCapCount = %d, max:18]", audioCapCount);
+ if (audioCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (audioCapCount * 16) && audioCapCount <= 18) {
for (counter_1 = 0; counter_1 < 18; counter_1++) {
if (counter_1 < audioCapCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [%d / %d]", counter_1 + 1, audioCapCount);
@@ -3812,12 +3813,12 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (audioCapCount * 16)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (audioCapCount * 16));
}
- if (videoCapCount <= 60) { /* tvb struct size guard */
+ if (videoCapCount <= 10) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [ref: videoCapCount = %d, max:10]", videoCapCount);
- if (videoCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (videoCapCount * 60) && videoCapCount <= 10) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [ref:videoCapCount = %d, max:10]", videoCapCount);
+ if (videoCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (videoCapCount * 60) && videoCapCount <= 10) {
for (counter_1 = 0; counter_1 < 10; counter_1++) {
if (counter_1 < videoCapCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [%d / %d]", counter_1 + 1, videoCapCount);
@@ -3826,10 +3827,10 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_add(cursor, hf_skinny_videoCapabilityDirection, 4, ENC_LITTLE_ENDIAN);
levelPreferenceCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_levelPreferenceCount, 4, ENC_LITTLE_ENDIAN);
- if (levelPreferenceCount <= 24) { /* tvb struct size guard */
+ if (levelPreferenceCount <= 4) {
guint32 counter_5 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [ref: levelPreferenceCount = %d, max:4]", levelPreferenceCount);
- if (levelPreferenceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (levelPreferenceCount * 24) && levelPreferenceCount <= 4) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [ref:levelPreferenceCount = %d, max:4]", levelPreferenceCount);
+ if (levelPreferenceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (levelPreferenceCount * 24) && levelPreferenceCount <= 4) {
for (counter_5 = 0; counter_5 < 4; counter_5++) {
if (counter_5 < levelPreferenceCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [%d / %d]", counter_5 + 1, levelPreferenceCount);
@@ -3847,7 +3848,7 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (levelPreferenceCount * 24)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (levelPreferenceCount * 24));
}
if (payloadCapability == MEDIA_PAYLOAD_H261) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "payloadCapability is Media_Payload_H261");
@@ -3935,12 +3936,12 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (videoCapCount * 60)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (videoCapCount * 60));
}
- if (dataCapCount <= 16) { /* tvb struct size guard */
+ if (dataCapCount <= 5) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [ref: dataCapCount = %d, max:5]", dataCapCount);
- if (dataCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (dataCapCount * 16) && dataCapCount <= 5) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [ref:dataCapCount = %d, max:5]", dataCapCount);
+ if (dataCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (dataCapCount * 16) && dataCapCount <= 5) {
for (counter_1 = 0; counter_1 < 5; counter_1++) {
if (counter_1 < dataCapCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [%d / %d]", counter_1 + 1, dataCapCount);
@@ -3956,7 +3957,7 @@ handle_CapabilitiesV2ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (dataCapCount * 16)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (dataCapCount * 16));
}
skinny_reqrep_add_response(cursor, pinfo, skinny_conv, 0x009b);
}
@@ -3990,11 +3991,11 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_add(cursor, hf_skinny_RTPPayloadFormat, 4, ENC_LITTLE_ENDIAN);
customPictureFormatCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_customPictureFormatCount, 4, ENC_LITTLE_ENDIAN);
- if (customPictureFormatCount <= 20) { /* tvb struct size guard */
+ if (customPictureFormatCount <= 6) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [ref: customPictureFormatCount = %d, max:6]", customPictureFormatCount);
- if (customPictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (customPictureFormatCount * 20) && customPictureFormatCount <= 6) { /* tvb counter size guard */
- for (counter_1 = 0; counter_1 < customPictureFormatCount; counter_1++) {
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [ref:customPictureFormatCount = %d, max:6]", customPictureFormatCount);
+ if (customPictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (customPictureFormatCount * 20) && customPictureFormatCount <= 6) {
+ for (counter_1 = 0; counter_1 < 6; counter_1++) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "customPictureFormat [%d / %d]", counter_1 + 1, customPictureFormatCount);
ptvcursor_add(cursor, hf_skinny_pictureWidth, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_pictureHeight, 4, ENC_LITTLE_ENDIAN);
@@ -4006,7 +4007,7 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (customPictureFormatCount * 20)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (customPictureFormatCount * 20));
}
{
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "confResources");
@@ -4014,11 +4015,11 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_add(cursor, hf_skinny_maxBW, 4, ENC_LITTLE_ENDIAN);
serviceResourceCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_serviceResourceCount, 4, ENC_LITTLE_ENDIAN);
- if (serviceResourceCount <= 24) { /* tvb struct size guard */
+ if (serviceResourceCount <= 4) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [ref: serviceResourceCount = %d, max:4]", serviceResourceCount);
- if (serviceResourceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (serviceResourceCount * 24) && serviceResourceCount <= 4) { /* tvb counter size guard */
- for (counter_2 = 0; counter_2 < serviceResourceCount; counter_2++) {
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [ref:serviceResourceCount = %d, max:4]", serviceResourceCount);
+ if (serviceResourceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (serviceResourceCount * 24) && serviceResourceCount <= 4) {
+ for (counter_2 = 0; counter_2 < 4; counter_2++) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "serviceResource [%d / %d]", counter_2 + 1, serviceResourceCount);
layoutCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_layoutCount, 4, ENC_LITTLE_ENDIAN);
@@ -4028,7 +4029,7 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
for (counter_6 = 0; counter_6 < layoutCount; counter_6++) {
ptvcursor_add(cursor, hf_skinny_layouts, 4, ENC_LITTLE_ENDIAN);
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: layouts */
+ ptvcursor_pop_subtree(cursor);
} else {
ptvcursor_advance(cursor, (layoutCount * 4)); /* guard kicked in -> skip the rest */;
}
@@ -4041,15 +4042,15 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (serviceResourceCount * 24)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (serviceResourceCount * 24));
}
ptvcursor_pop_subtree(cursor);
}
- if (audioCapCount <= 16) { /* tvb struct size guard */
+ if (audioCapCount <= 18) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [ref: audioCapCount = %d, max:18]", audioCapCount);
- if (audioCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (audioCapCount * 16) && audioCapCount <= 18) { /* tvb counter size guard */
- for (counter_1 = 0; counter_1 < audioCapCount; counter_1++) {
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [ref:audioCapCount = %d, max:18]", audioCapCount);
+ if (audioCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (audioCapCount * 16) && audioCapCount <= 18) {
+ for (counter_1 = 0; counter_1 < 18; counter_1++) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "audiocaps [%d / %d]", counter_1 + 1, audioCapCount);
payloadCapability = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_payloadCapability, 4, ENC_LITTLE_ENDIAN);
@@ -4106,24 +4107,24 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (audioCapCount * 16)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (audioCapCount * 16));
}
- if (videoCapCount <= 72) { /* tvb struct size guard */
+ if (videoCapCount <= 10) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [ref: videoCapCount = %d, max:10]", videoCapCount);
- if (videoCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (videoCapCount * 72) && videoCapCount <= 10) { /* tvb counter size guard */
- for (counter_1 = 0; counter_1 < videoCapCount; counter_1++) {
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [ref:videoCapCount = %d, max:10]", videoCapCount);
+ if (videoCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (videoCapCount * 4) && videoCapCount <= 10) {
+ for (counter_1 = 0; counter_1 < 10; counter_1++) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "vidCaps [%d / %d]", counter_1 + 1, videoCapCount);
payloadCapability = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_payloadCapability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_videoCapabilityDirection, 4, ENC_LITTLE_ENDIAN);
levelPreferenceCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_levelPreferenceCount, 4, ENC_LITTLE_ENDIAN);
- if (levelPreferenceCount <= 24) { /* tvb struct size guard */
+ if (levelPreferenceCount <= 4) {
guint32 counter_4 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [ref: levelPreferenceCount = %d, max:4]", levelPreferenceCount);
- if (levelPreferenceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (levelPreferenceCount * 24) && levelPreferenceCount <= 4) { /* tvb counter size guard */
- for (counter_4 = 0; counter_4 < levelPreferenceCount; counter_4++) {
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [ref:levelPreferenceCount = %d, max:4]", levelPreferenceCount);
+ if (levelPreferenceCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (levelPreferenceCount * 24) && levelPreferenceCount <= 4) {
+ for (counter_4 = 0; counter_4 < 4; counter_4++) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "levelPreference [%d / %d]", counter_4 + 1, levelPreferenceCount);
ptvcursor_add(cursor, hf_skinny_transmitPreference, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_format, 4, ENC_LITTLE_ENDIAN);
@@ -4136,7 +4137,7 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (levelPreferenceCount * 24)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (levelPreferenceCount * 24));
}
ptvcursor_add(cursor, hf_skinny_encryptionCapability, 4, ENC_LITTLE_ENDIAN);
if (payloadCapability == MEDIA_PAYLOAD_H261) {
@@ -4226,13 +4227,13 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (videoCapCount * 72)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (videoCapCount * 4));
}
- if (dataCapCount <= 20) { /* tvb struct size guard */
+ if (dataCapCount <= 5) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [ref: dataCapCount = %d, max:5]", dataCapCount);
- if (dataCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (dataCapCount * 20) && dataCapCount <= 5) { /* tvb counter size guard */
- for (counter_1 = 0; counter_1 < dataCapCount; counter_1++) {
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [ref:dataCapCount = %d, max:5]", dataCapCount);
+ if (dataCapCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (dataCapCount * 20) && dataCapCount <= 5) {
+ for (counter_1 = 0; counter_1 < 5; counter_1++) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "dataCaps [%d / %d]", counter_1 + 1, dataCapCount);
ptvcursor_add(cursor, hf_skinny_payloadCapability, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_dataCapabilityDirection, 4, ENC_LITTLE_ENDIAN);
@@ -4244,7 +4245,7 @@ handle_CapabilitiesV3ResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (dataCapCount * 20)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (dataCapCount * 20));
}
skinny_reqrep_add_response(cursor, pinfo, skinny_conv, 0x009b);
}
@@ -4623,9 +4624,9 @@ handle_StartMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo _U
ptvcursor_add(cursor, hf_skinny_keylen, 2, ENC_LITTLE_ENDIAN);
saltlen = tvb_get_letohs(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_saltlen, 2, ENC_LITTLE_ENDIAN);
- if (keylen <= 16) { /* tvb integer size guard */
+ if (keylen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref: keylen = %d, max:16]", keylen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref:keylen = %d, max:16]", keylen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < keylen) {
ptvcursor_add(cursor, hf_skinny_key, 1, ENC_LITTLE_ENDIAN);
@@ -4633,13 +4634,13 @@ handle_StartMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo _U
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: key */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
- if (saltlen <= 16) { /* tvb integer size guard */
+ if (saltlen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref: saltlen = %d, max:16]", saltlen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref:saltlen = %d, max:16]", saltlen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < saltlen) {
ptvcursor_add(cursor, hf_skinny_salt, 1, ENC_LITTLE_ENDIAN);
@@ -4647,9 +4648,9 @@ handle_StartMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pinfo _U
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: salt */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
ptvcursor_add(cursor, hf_skinny_isMKIPresent, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_keyDerivationRate, 4, ENC_LITTLE_ENDIAN);
@@ -4942,10 +4943,10 @@ handle_ButtonTemplateResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
ptvcursor_add(cursor, hf_skinny_buttonCount, 4, ENC_LITTLE_ENDIAN);
totalButtonCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_totalButtonCount, 4, ENC_LITTLE_ENDIAN);
- if (totalButtonCount <= 2) { /* tvb struct size guard */
+ if (totalButtonCount <= 42) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [ref: totalButtonCount = %d, max:42]", totalButtonCount);
- if (totalButtonCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (totalButtonCount * 2) && totalButtonCount <= 42) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [ref:totalButtonCount = %d, max:42]", totalButtonCount);
+ if (totalButtonCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (totalButtonCount * 2) && totalButtonCount <= 42) {
for (counter_2 = 0; counter_2 < 42; counter_2++) {
if (counter_2 < totalButtonCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [%d / %d]", counter_2 + 1, totalButtonCount);
@@ -4959,7 +4960,7 @@ handle_ButtonTemplateResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (totalButtonCount * 2)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (totalButtonCount * 2));
}
ptvcursor_pop_subtree(cursor);
}
@@ -5038,7 +5039,7 @@ handle_ServerResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny_con
for (counter_2 = 0; counter_2 < 5; counter_2++) {
ptvcursor_add(cursor, hf_skinny_serverTcpListenPort, 4, ENC_LITTLE_ENDIAN);
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: serverTcpListenPort */
+ ptvcursor_pop_subtree(cursor);
}
if (hdr_data_length < 293) {
{
@@ -5288,9 +5289,9 @@ handle_OpenReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_add(cursor, hf_skinny_keylen, 2, ENC_LITTLE_ENDIAN);
saltlen = tvb_get_letohs(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_saltlen, 2, ENC_LITTLE_ENDIAN);
- if (keylen <= 16) { /* tvb integer size guard */
+ if (keylen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref: keylen = %d, max:16]", keylen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref:keylen = %d, max:16]", keylen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < keylen) {
ptvcursor_add(cursor, hf_skinny_key, 1, ENC_LITTLE_ENDIAN);
@@ -5298,13 +5299,13 @@ handle_OpenReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: key */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
- if (saltlen <= 16) { /* tvb integer size guard */
+ if (saltlen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref: saltlen = %d, max:16]", saltlen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref:saltlen = %d, max:16]", saltlen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < saltlen) {
ptvcursor_add(cursor, hf_skinny_salt, 1, ENC_LITTLE_ENDIAN);
@@ -5312,9 +5313,9 @@ handle_OpenReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: salt */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
ptvcursor_add(cursor, hf_skinny_isMKIPresent, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_keyDerivationRate, 4, ENC_LITTLE_ENDIAN);
@@ -5446,10 +5447,10 @@ handle_SoftKeyTemplateResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
ptvcursor_add(cursor, hf_skinny_softKeyCount, 4, ENC_LITTLE_ENDIAN);
totalSoftKeyCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_totalSoftKeyCount, 4, ENC_LITTLE_ENDIAN);
- if (totalSoftKeyCount <= 20) { /* tvb struct size guard */
+ if (totalSoftKeyCount <= 32) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [ref: totalSoftKeyCount = %d, max:32]", totalSoftKeyCount);
- if (totalSoftKeyCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (totalSoftKeyCount * 20) && totalSoftKeyCount <= 32) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [ref:totalSoftKeyCount = %d, max:32]", totalSoftKeyCount);
+ if (totalSoftKeyCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (totalSoftKeyCount * 20) && totalSoftKeyCount <= 32) {
for (counter_2 = 0; counter_2 < 32; counter_2++) {
if (counter_2 < totalSoftKeyCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [%d / %d]", counter_2 + 1, totalSoftKeyCount);
@@ -5463,7 +5464,7 @@ handle_SoftKeyTemplateResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, s
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (totalSoftKeyCount * 20)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (totalSoftKeyCount * 20));
}
ptvcursor_pop_subtree(cursor);
}
@@ -5488,10 +5489,10 @@ handle_SoftKeySetResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny
ptvcursor_add(cursor, hf_skinny_softKeySetCount, 4, ENC_LITTLE_ENDIAN);
totalSoftKeySetCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_totalSoftKeySetCount, 4, ENC_LITTLE_ENDIAN);
- if (totalSoftKeySetCount <= 3) { /* tvb struct size guard */
+ if (totalSoftKeySetCount <= 16) {
guint32 counter_2 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [ref: totalSoftKeySetCount = %d, max:16]", totalSoftKeySetCount);
- if (totalSoftKeySetCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (totalSoftKeySetCount * 3) && totalSoftKeySetCount <= 16) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [ref:totalSoftKeySetCount = %d, max:16]", totalSoftKeySetCount);
+ if (totalSoftKeySetCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (totalSoftKeySetCount * 3) && totalSoftKeySetCount <= 16) {
for (counter_2 = 0; counter_2 < 16; counter_2++) {
if (counter_2 < totalSoftKeySetCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "definition [%d / %d]", counter_2 + 1, totalSoftKeySetCount);
@@ -5501,7 +5502,7 @@ handle_SoftKeySetResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny
for (counter_7 = 0; counter_7 < 16; counter_7++) {
ptvcursor_add(cursor, hf_skinny_softKeyTemplateIndex, 1, ENC_LITTLE_ENDIAN);
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: softKeyTemplateIndex */
+ ptvcursor_pop_subtree(cursor);
}
{
guint32 counter_7 = 0;
@@ -5509,7 +5510,7 @@ handle_SoftKeySetResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny
for (counter_7 = 0; counter_7 < 16; counter_7++) {
ptvcursor_add(cursor, hf_skinny_softKeyInfoIndex, 2, ENC_LITTLE_ENDIAN);
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: softKeyInfoIndex */
+ ptvcursor_pop_subtree(cursor);
}
} else {
ptvcursor_advance(cursor, 3);
@@ -5519,7 +5520,7 @@ handle_SoftKeySetResMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (totalSoftKeySetCount * 3)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (totalSoftKeySetCount * 3));
}
ptvcursor_pop_subtree(cursor);
}
@@ -5889,7 +5890,7 @@ handle_StartAnnouncementMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, sk
for (counter_2 = 0; counter_2 < 16; counter_2++) {
ptvcursor_add(cursor, hf_skinny_matrixConfPartyID, 4, ENC_LITTLE_ENDIAN);
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: matrixConfPartyID */
+ ptvcursor_pop_subtree(cursor);
}
ptvcursor_add(cursor, hf_skinny_hearingConfPartyMask, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_annPlayMode, 4, ENC_LITTLE_ENDIAN);
@@ -6178,7 +6179,7 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
ptvcursor_pop_subtree(cursor);
}
ptvcursor_pop_subtree(cursor);
- ptvcursor_advance(cursor, 28);
+ ptvcursor_advance(cursor, 36);
} else if (payloadType >= MEDIA_PAYLOAD_H261 && payloadType <= MEDIA_PAYLOAD_H264_FEC) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "Media_Payload_H261 <= payloadType <= Media_Payload_H264_FEC");
{
@@ -6186,10 +6187,10 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
ptvcursor_add(cursor, hf_skinny_bitRate, 4, ENC_LITTLE_ENDIAN);
pictureFormatCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_pictureFormatCount, 4, ENC_LITTLE_ENDIAN);
- if (pictureFormatCount <= 8) { /* tvb struct size guard */
+ if (pictureFormatCount <= 5) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "pictureFormat [ref: pictureFormatCount = %d, max:5]", pictureFormatCount);
- if (pictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (pictureFormatCount * 8) && pictureFormatCount <= 5) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "pictureFormat [ref:pictureFormatCount = %d, max:5]", pictureFormatCount);
+ if (pictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (pictureFormatCount * 8) && pictureFormatCount <= 5) {
for (counter_3 = 0; counter_3 < 5; counter_3++) {
if (counter_3 < pictureFormatCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "pictureFormat [%d / %d]", counter_3 + 1, pictureFormatCount);
@@ -6203,7 +6204,7 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (pictureFormatCount * 8)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (pictureFormatCount * 8));
}
ptvcursor_add(cursor, hf_skinny_confServiceNum, 4, ENC_LITTLE_ENDIAN);
if (payloadType == MEDIA_PAYLOAD_H261) {
@@ -6305,9 +6306,9 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
ptvcursor_add(cursor, hf_skinny_keylen, 2, ENC_LITTLE_ENDIAN);
saltlen = tvb_get_letohs(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_saltlen, 2, ENC_LITTLE_ENDIAN);
- if (keylen <= 16) { /* tvb integer size guard */
+ if (keylen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref: keylen = %d, max:16]", keylen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref:keylen = %d, max:16]", keylen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < keylen) {
ptvcursor_add(cursor, hf_skinny_key, 1, ENC_LITTLE_ENDIAN);
@@ -6315,13 +6316,13 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: key */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
- if (saltlen <= 16) { /* tvb integer size guard */
+ if (saltlen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref: saltlen = %d, max:16]", saltlen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref:saltlen = %d, max:16]", saltlen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < saltlen) {
ptvcursor_add(cursor, hf_skinny_salt, 1, ENC_LITTLE_ENDIAN);
@@ -6329,9 +6330,9 @@ handle_OpenMultiMediaReceiveChannelMessage(ptvcursor_t *cursor, packet_info * pi
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: salt */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
ptvcursor_add(cursor, hf_skinny_isMKIPresent, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_keyDerivationRate, 4, ENC_LITTLE_ENDIAN);
@@ -6418,7 +6419,7 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
ptvcursor_pop_subtree(cursor);
}
ptvcursor_pop_subtree(cursor);
- ptvcursor_advance(cursor, 28);
+ ptvcursor_advance(cursor, 36);
} else if (payloadType >= MEDIA_PAYLOAD_H261 && payloadType <= MEDIA_PAYLOAD_H264_FEC) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "Media_Payload_H261 <= payloadType <= Media_Payload_H264_FEC");
{
@@ -6426,10 +6427,10 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
ptvcursor_add(cursor, hf_skinny_bitRate, 4, ENC_LITTLE_ENDIAN);
pictureFormatCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_pictureFormatCount, 4, ENC_LITTLE_ENDIAN);
- if (pictureFormatCount <= 8) { /* tvb struct size guard */
+ if (pictureFormatCount <= 5) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "pictureFormat [ref: pictureFormatCount = %d, max:5]", pictureFormatCount);
- if (pictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (pictureFormatCount * 8) && pictureFormatCount <= 5) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "pictureFormat [ref:pictureFormatCount = %d, max:5]", pictureFormatCount);
+ if (pictureFormatCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (pictureFormatCount * 8) && pictureFormatCount <= 5) {
for (counter_3 = 0; counter_3 < 5; counter_3++) {
if (counter_3 < pictureFormatCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "pictureFormat [%d / %d]", counter_3 + 1, pictureFormatCount);
@@ -6443,7 +6444,7 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (pictureFormatCount * 8)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (pictureFormatCount * 8));
}
ptvcursor_add(cursor, hf_skinny_confServiceNum, 4, ENC_LITTLE_ENDIAN);
if (payloadType == MEDIA_PAYLOAD_H261) {
@@ -6545,9 +6546,9 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
ptvcursor_add(cursor, hf_skinny_keylen, 2, ENC_LITTLE_ENDIAN);
saltlen = tvb_get_letohs(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_saltlen, 2, ENC_LITTLE_ENDIAN);
- if (keylen <= 16) { /* tvb integer size guard */
+ if (keylen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref: keylen = %d, max:16]", keylen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "key [ref:keylen = %d, max:16]", keylen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < keylen) {
ptvcursor_add(cursor, hf_skinny_key, 1, ENC_LITTLE_ENDIAN);
@@ -6555,13 +6556,13 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: key */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
- if (saltlen <= 16) { /* tvb integer size guard */
+ if (saltlen <= 16) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref: saltlen = %d, max:16]", saltlen);
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "salt [ref:saltlen = %d, max:16]", saltlen);
for (counter_3 = 0; counter_3 < 16; counter_3++) {
if (counter_3 < saltlen) {
ptvcursor_add(cursor, hf_skinny_salt, 1, ENC_LITTLE_ENDIAN);
@@ -6569,9 +6570,9 @@ handle_StartMultiMediaTransmissionMessage(ptvcursor_t *cursor, packet_info * pin
ptvcursor_advance(cursor, 1);
}
}
- ptvcursor_pop_subtree(cursor); /* end for loop tree: salt */
+ ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (16 * 1)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (16 * 1));
}
ptvcursor_add(cursor, hf_skinny_isMKIPresent, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(cursor, hf_skinny_keyDerivationRate, 4, ENC_LITTLE_ENDIAN);
@@ -6682,10 +6683,10 @@ handle_MiscellaneousCommandMessage(ptvcursor_t *cursor, packet_info * pinfo _U_,
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "recoveryReferencePictureValue");
recoveryReferencePictureCount = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_recoveryReferencePictureCount, 4, ENC_LITTLE_ENDIAN);
- if (recoveryReferencePictureCount <= 8) { /* tvb struct size guard */
+ if (recoveryReferencePictureCount <= 4) {
guint32 counter_3 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "recoveryReferencePicture [ref: recoveryReferencePictureCount = %d, max:4]", recoveryReferencePictureCount);
- if (recoveryReferencePictureCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (recoveryReferencePictureCount * 8) && recoveryReferencePictureCount <= 4) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "recoveryReferencePicture [ref:recoveryReferencePictureCount = %d, max:4]", recoveryReferencePictureCount);
+ if (recoveryReferencePictureCount && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (recoveryReferencePictureCount * 8) && recoveryReferencePictureCount <= 4) {
for (counter_3 = 0; counter_3 < 4; counter_3++) {
if (counter_3 < recoveryReferencePictureCount) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "recoveryReferencePicture [%d / %d]", counter_3 + 1, recoveryReferencePictureCount);
@@ -6699,7 +6700,7 @@ handle_MiscellaneousCommandMessage(ptvcursor_t *cursor, packet_info * pinfo _U_,
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (recoveryReferencePictureCount * 8)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (recoveryReferencePictureCount * 8));
}
ptvcursor_pop_subtree(cursor);
}
@@ -7735,10 +7736,10 @@ handle_CallCountRespMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny
ptvcursor_add(cursor, hf_skinny_startingLineInstance, 4, ENC_LITTLE_ENDIAN);
lineDataEntries = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));
ptvcursor_add(cursor, hf_skinny_lineDataEntries, 4, ENC_LITTLE_ENDIAN);
- if (lineDataEntries <= 4) { /* tvb struct size guard */
+ if (lineDataEntries <= 42) {
guint32 counter_1 = 0;
- ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "lineData [ref: lineDataEntries = %d, max:42]", lineDataEntries);
- if (lineDataEntries && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (lineDataEntries * 4) && lineDataEntries <= 42) { /* tvb counter size guard */
+ ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "lineData [ref:lineDataEntries = %d, max:42]", lineDataEntries);
+ if (lineDataEntries && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (lineDataEntries * 4) && lineDataEntries <= 42) {
for (counter_1 = 0; counter_1 < 42; counter_1++) {
if (counter_1 < lineDataEntries) {
ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "lineData [%d / %d]", counter_1 + 1, lineDataEntries);
@@ -7752,7 +7753,7 @@ handle_CallCountRespMessage(ptvcursor_t *cursor, packet_info * pinfo _U_, skinny
}
ptvcursor_pop_subtree(cursor);
} else {
- ptvcursor_advance(cursor, (lineDataEntries * 4)); /* guard kicked in -> skip the rest */;
+ ptvcursor_advance(cursor, (lineDataEntries * 4));
}
skinny_reqrep_add_response(cursor, pinfo, skinny_conv, 0x015e);
}
@@ -7861,7 +7862,7 @@ static const skinny_opcode_map_t skinny_opcode_map[] = {
{0x0021, handle_MulticastMediaReceptionAckMessage , SKINNY_MSGTYPE_RESPONSE , "MulticastMediaReceptionAckMessage"},
{0x0022, handle_OpenReceiveChannelAckMessage , SKINNY_MSGTYPE_RESPONSE , "OpenReceiveChannelAckMessage"},
{0x0023, handle_ConnectionStatisticsResMessage , SKINNY_MSGTYPE_RESPONSE , "ConnectionStatisticsResMessage"},
- {0x0024, handle_OffHookWithCgpnMessage , SKINNY_MSGTYPE_EVENT , "OffHookWithCgpnMessage"},
+ {0x0024, handle_OffHookWithCalingPartyNumberMessage , SKINNY_MSGTYPE_EVENT , "OffHookWithCalingPartyNumberMessage"},
{0x0025, NULL , SKINNY_MSGTYPE_REQUEST , "SoftKeySetReqMessage"},
{0x0026, handle_SoftKeyEventMessage , SKINNY_MSGTYPE_EVENT , "SoftKeyEventMessage"},
{0x0027, handle_UnregisterReqMessage , SKINNY_MSGTYPE_REQUEST , "UnregisterReqMessage"},
@@ -7900,6 +7901,7 @@ static const skinny_opcode_map_t skinny_opcode_map[] = {
{0x0083, handle_StopToneMessage , SKINNY_MSGTYPE_EVENT , "StopToneMessage"},
{0x0085, handle_SetRingerMessage , SKINNY_MSGTYPE_EVENT , "SetRingerMessage"},
{0x0086, handle_SetLampMessage , SKINNY_MSGTYPE_EVENT , "SetLampMessage"},
+ {0x0087, NULL , SKINNY_MSGTYPE_EVENT , "SetHookFlashDetectMessage"},
{0x0088, handle_SetSpeakerModeMessage , SKINNY_MSGTYPE_EVENT , "SetSpeakerModeMessage"},
{0x0089, handle_SetMicroModeMessage , SKINNY_MSGTYPE_EVENT , "SetMicroModeMessage"},
{0x008a, handle_StartMediaTransmissionMessage , SKINNY_MSGTYPE_REQUEST , "StartMediaTransmissionMessage"},
diff --git a/tools/SkinnyProtocolOptimized.xml b/tools/SkinnyProtocolOptimized.xml
index 1b3cf6da8e..c089be1820 100644
--- a/tools/SkinnyProtocolOptimized.xml
+++ b/tools/SkinnyProtocolOptimized.xml
@@ -851,7 +851,7 @@
<string comment="Statistics" longcomment="variable field size (max: 600]" maxsize="600" name="data" size_fieldname="dataSize" type="char"/>
</fields>
</message>
- <message comment="" direction="dev2pbx" dynamic="no" msgtype="event" name="OffHookWithCgpnMessage" opcode="0x0024" type="CallControl">
+ <message comment="" direction="dev2pbx" dynamic="no" msgtype="event" name="OffHookWithCalingPartyNumberMessage" opcode="0x0024" type="CallControl">
<fields>
<string comment="Calling Party Number" declare="yes" name="callingPartyNumber" size="VariableDirnumSize" type="char"/>
<string comment="Calling Party Voicemail Box Number" declare="yes" name="cgpnVoiceMailbox" size="VariableDirnumSize" type="char"/>
@@ -2152,6 +2152,7 @@
<enum comment="" name="lampMode" subtype="LampMode" type="uint32"/>
</fields>
</message>
+ <message comment="" direction="pbx2dev" dynamic="no" msgtype="event" name="SetHookFlashDetectMessage" opcode="0x0087" type="CallControl"/>
<enum name="SpeakerMode">
<entries>
<entry comment="" name="SpeakerMode_On" text="On" value="0x0001"/>
diff --git a/tools/parse_xml2skinny_dissector.py b/tools/parse_xml2skinny_dissector.py
index 8acb50fdba..3af2abe169 100755
--- a/tools/parse_xml2skinny_dissector.py
+++ b/tools/parse_xml2skinny_dissector.py
@@ -222,22 +222,22 @@ def xml2obj(src):
if declarations > 1:
ret += "\n"
- if (self.fields is not None):
+ if self.fields is not None:
for fields in self.fields:
ret += '%s' %fields.dissect()
# setup request/response
if self.msgtype == "request":
- if req_resp_keys and req_resp_keys[0] != '':
- ret += self.indent_out('skinny_reqrep_add_request(cursor, pinfo, skinny_conv, %s ^ %s);\n' %(self.opcode, req_resp_keys[0]))
- else:
- ret += self.indent_out('skinny_reqrep_add_request(cursor, pinfo, skinny_conv, %s);\n' %(self.opcode))
+ if req_resp_keys and req_resp_keys[0] != '':
+ ret += self.indent_out('skinny_reqrep_add_request(cursor, pinfo, skinny_conv, %s ^ %s);\n' %(self.opcode, req_resp_keys[0]))
+ else:
+ ret += self.indent_out('skinny_reqrep_add_request(cursor, pinfo, skinny_conv, %s);\n' %(self.opcode))
if self.msgtype == "response":
- if req_resp_keys and req_resp_keys[0] != '':
- ret += self.indent_out('skinny_reqrep_add_response(cursor, pinfo, skinny_conv, %s ^ %s);\n' %(self.request, req_resp_keys[0]))
- else:
- ret += self.indent_out('skinny_reqrep_add_response(cursor, pinfo, skinny_conv, %s);\n' %(self.request))
+ if req_resp_keys and req_resp_keys[0] != '':
+ ret += self.indent_out('skinny_reqrep_add_response(cursor, pinfo, skinny_conv, %s ^ %s);\n' %(self.request, req_resp_keys[0]))
+ else:
+ ret += self.indent_out('skinny_reqrep_add_response(cursor, pinfo, skinny_conv, %s);\n' %(self.request))
self.decr_indent()
@@ -257,8 +257,6 @@ def xml2obj(src):
def declaration(self):
ret = ''
- #ret += '/* Fields Declaration */'
-
for field in self._children:
ret += '%s' %(field.declaration())
self.intsize += field.intsize
@@ -352,14 +350,14 @@ def xml2obj(src):
if size:
if self.size_fieldname:
- ret += self.indent_out('if (%s <= %s) { /* tvb integer size guard */\n' %(self.size_fieldname, size))
+ ret += self.indent_out('if (%s <= %s) {%s\n' %(self.size_fieldname, size, ' /* tvb integer size guard */' if debug else ''))
else:
ret += self.indent_out('{\n')
self.incr_indent()
variable = 'counter_%d' %indentation
ret += self.indent_out('guint32 %s = 0;\n' %(variable));
if self.size_fieldname:
- ret += self.indent_out('ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "%s [ref: %s = %%d, max:%s]", %s);\n' %(self.name, self.size_fieldname, size, self.size_fieldname))
+ ret += self.indent_out('ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "%s [ref:%s = %%d, max:%s]", %s);\n' %(self.name, self.size_fieldname, size, self.size_fieldname))
else:
ret += self.indent_out('ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "%s [max:%s]");\n' %(self.name, size))
ret += self.indent_out('for (%s = 0; %s < %s; %s++) {\n' %(variable, variable, size, variable));
@@ -386,9 +384,9 @@ def xml2obj(src):
if self.name in si_fields.keys():
if self.endianness == "big":
- ret += self.indent_out('%s = tvb_get_ntohs(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));\n' %(si_fields[self.name]))
+ ret += self.indent_out('%s = tvb_get_ntohs(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));\n' %(si_fields[self.name]))
else:
- ret += self.indent_out('%s = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));\n' %(si_fields[self.name]))
+ ret += self.indent_out('%s = tvb_get_letohl(ptvcursor_tvbuff(cursor), ptvcursor_current_offset(cursor));\n' %(si_fields[self.name]))
ret += self.indent_out('ptvcursor_add(cursor, hf_skinny_%s, %d, %s);\n' %(self.name, self.intsize, self.endian))
@@ -400,12 +398,15 @@ def xml2obj(src):
ret += self.indent_out('}\n')
self.decr_indent()
ret += self.indent_out('}\n')
- ret += self.indent_out('ptvcursor_pop_subtree(cursor); /* end for loop tree: %s */\n' %self.name)
+ if debug:
+ ret += self.indent_out('ptvcursor_pop_subtree(cursor); /* end for loop tree: %s */\n' %(self.name))
+ else:
+ ret += self.indent_out('ptvcursor_pop_subtree(cursor);\n')
self.decr_indent()
if self.size_fieldname:
ret += self.indent_out('} else {\n')
self.incr_indent()
- ret += self.indent_out('ptvcursor_advance(cursor, (%s * %s)); /* guard kicked in -> skip the rest */;\n' %(size, self.intsize))
+ ret += self.indent_out('ptvcursor_advance(cursor, (%s * %s));%s\n' %(size, self.intsize, ' /* guard kicked in -> skip the rest */;' if debug else ''))
self.decr_indent()
ret += self.indent_out('}\n')
return ret
@@ -489,7 +490,10 @@ def xml2obj(src):
ret += self.indent_out('}\n')
self.decr_indent()
ret += self.indent_out('}\n')
- ret += self.indent_out('ptvcursor_pop_subtree(cursor); /* end for loop tree: %s */\n' %self.name)
+ if debug:
+ ret += self.indent_out('ptvcursor_pop_subtree(cursor); /* end for loop tree: %s */\n' %(self.name))
+ else:
+ ret += self.indent_out('ptvcursor_pop_subtree(cursor);\n')
self.decr_indent()
if self.size_fieldname:
ret += self.indent_out('} else {\n')
@@ -753,8 +757,8 @@ def xml2obj(src):
self.basemessage.declared.append("hdr_version")
for fields in self.fields:
ret += '%s' %fields.declaration()
- self.intsize += fields.intsize
-
+ #self.intsize += fields.intsize
+ self.intsize = fields.intsize
return ret
def dissect(self):
@@ -763,29 +767,29 @@ def xml2obj(src):
size = 0
if self.size_fieldname:
- if self.basemessage.dynamic == "yes":
- size = self.size_fieldname
- else:
- size = self.maxsize
+ #if self.basemessage.dynamic == "yes":
+ # size = self.size_fieldname
+ #else:
+ # size = self.maxsize
+ size = self.maxsize
elif self.size:
size = self.size
if size:
if self.size_fieldname:
- ret += self.indent_out('if (%s <= %s) { /* tvb struct size guard */\n' %(self.size_fieldname, self.intsize))
+ ret += self.indent_out('if (%s <= %s) {%s\n' %(self.size_fieldname, size, ' /* tvb struct size guard */' if debug else ''))
else:
ret += self.indent_out('{\n')
self.incr_indent()
if debug:
ret += self.indent_out('/* start struct : %s / size: %d */\n' %(self.name, self.intsize))
- #self.incr_indent()
ret += self.indent_out('guint32 %s = 0;\n' %(variable));
if self.size_fieldname:
- ret += self.indent_out('ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "%s [ref: %s = %%d, max:%s]", %s);\n' %(self.name, self.size_fieldname, self.maxsize, self.size_fieldname))
+ ret += self.indent_out('ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "%s [ref:%s = %%d, max:%s]", %s);\n' %(self.name, self.size_fieldname, self.maxsize, self.size_fieldname))
if self.maxsize:
- ret += self.indent_out('if (%s && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (%s * %s) && %s <= %s) { /* tvb counter size guard */\n' %(self.size_fieldname, self.size_fieldname, self.intsize, self.size_fieldname, self.maxsize))
+ ret += self.indent_out('if (%s && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (%s * %s) && %s <= %s) {%s\n' %(self.size_fieldname, self.size_fieldname, self.intsize, self.size_fieldname, self.maxsize, '/* tvb counter size guard */' if debug else ''))
else:
- ret += self.indent_out('if (%s && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (%s * %s)) { /* tvb counter size guard */\n' %(self.size_fieldname, self.size_fieldname, self.intsize))
+ ret += self.indent_out('if (%s && tvb_get_letohl(ptvcursor_tvbuff(cursor), 0) + 8 >= ptvcursor_current_offset(cursor) + (%s * %s)) {%s\n' %(self.size_fieldname, self.size_fieldname, self.intsize, '/* tvb counter size guard */' if debug else ''))
self.incr_indent()
else:
ret += self.indent_out('ptvcursor_add_text_with_subtree(cursor, SUBTREE_UNDEFINED_LENGTH, ett_skinny_tree, "%s [max:%s]");\n' %(self.name, size))
@@ -828,10 +832,7 @@ def xml2obj(src):
ret += self.indent_out('}\n')
if self.size_fieldname:
self.decr_indent()
- if debug:
- ret += self.indent_out('} /* end counter tvb size guard */\n')
- else:
- ret += self.indent_out('}\n')
+ ret += self.indent_out('} /* end counter tvb size guard */\n' if debug else '}\n')
ret += self.indent_out('ptvcursor_pop_subtree(cursor);\n')
if debug:
@@ -840,12 +841,9 @@ def xml2obj(src):
if self.size_fieldname:
ret += self.indent_out('} else {\n')
self.incr_indent()
- ret += self.indent_out('ptvcursor_advance(cursor, (%s * %s)); /* guard kicked in -> skip the rest */;\n' %(self.size_fieldname, self.intsize));
+ ret += self.indent_out('ptvcursor_advance(cursor, (%s * %s));%s\n' %(self.size_fieldname, self.intsize, ' /* guard kicked in -> skip the rest */' if debug else ''));
self.decr_indent()
- if debug:
- ret += self.indent_out('} /* end struct size guard */\n')
- else:
- ret += self.indent_out('}\n')
+ ret += self.indent_out('} /* end struct size guard */\n' if debug else '}\n')
return ret