CQL: ensure that there is at least one column to display rows
authorPascal Quantin <pascal.quantin@gmail.com>
Sat, 17 Mar 2018 14:29:15 +0000 (15:29 +0100)
committerAnders Broman <a.broman58@gmail.com>
Sat, 17 Mar 2018 20:20:23 +0000 (20:20 +0000)
Bug: 14530
Change-Id: Ie5729c00ea4d826dbae028b3a4653acf746b92b8
Reviewed-on: https://code.wireshark.org/review/26521
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
epan/dissectors/packet-cql.c

index 6220a3c46862f8e39e2645b52d6f6283ba7b99bc..c76df9aa074821d70337273f46fcae8f2909352a 100644 (file)
@@ -1415,17 +1415,19 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
                                                }
                                                offset += 4;
 
-                                               for (j = 0; j < result_rows_row_count; ++j) {
-                                                       columns_subtree = proto_tree_add_subtree(rows_subtree, tvb, offset, 0, ett_cql_result_columns, &ti, "Data (Columns)");
-
-                                                       if (offset_row_metadata) {
-                                                               offset = parse_row(columns_subtree, pinfo, tvb, offset_row_metadata, offset, result_rows_columns_count);
-                                                       } else {
-                                                               for (k = 0; k < result_rows_columns_count; ++k) {
-                                                                       proto_tree_add_item_ret_int(columns_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
-                                                                       offset += 4;
-                                                                       proto_tree_add_item(columns_subtree, hf_cql_bytes, tvb, offset, bytes_length, ENC_NA);
-                                                                       offset += bytes_length;
+                                               if (result_rows_columns_count) {
+                                                       for (j = 0; j < result_rows_row_count; ++j) {
+                                                               columns_subtree = proto_tree_add_subtree(rows_subtree, tvb, offset, 0, ett_cql_result_columns, &ti, "Data (Columns)");
+
+                                                               if (offset_row_metadata) {
+                                                                       offset = parse_row(columns_subtree, pinfo, tvb, offset_row_metadata, offset, result_rows_columns_count);
+                                                               } else {
+                                                                       for (k = 0; k < result_rows_columns_count; ++k) {
+                                                                               proto_tree_add_item_ret_int(columns_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
+                                                                               offset += 4;
+                                                                               proto_tree_add_item(columns_subtree, hf_cql_bytes, tvb, offset, bytes_length, ENC_NA);
+                                                                               offset += bytes_length;
+                                                                       }
                                                                }
                                                        }
                                                }