1 From 3570d264c1de081fe0d05309efab46ef569de07e Mon Sep 17 00:00:00 2001 |
|
2 From: Guy Harris <[email protected]> |
|
3 Date: Tue, 15 Mar 2016 14:20:02 -0700 |
|
4 Subject: [PATCH] FT_BOOLEAN is now stored as a 64-bit value; treat it as such. |
|
5 |
|
6 Always look and set the uinteger64 member of the union for FT_BOOLEAN |
|
7 values. |
|
8 |
|
9 Bug: 12236 |
|
10 Change-Id: I7b0166e564b9d6cbb80051a81714a4b4c5f740a2 |
|
11 Reviewed-on: https://code.wireshark.org/review/14481 |
|
12 Reviewed-by: Guy Harris <[email protected]> |
|
13 --- |
|
14 epan/dfilter/semcheck.c | 4 ++-- |
|
15 epan/ftypes/ftype-integer.c | 14 +++++++------- |
|
16 2 files changed, 9 insertions(+), 9 deletions(-) |
|
17 |
|
18 diff --git a/epan/dfilter/semcheck.c b/epan/dfilter/semcheck.c |
|
19 index de01413..b1fb17b 100644 |
|
20 --- epan/dfilter/semcheck.c |
|
21 +++ epan/dfilter/semcheck.c |
|
22 @@ -260,10 +260,10 @@ mk_fvalue_from_val_string(dfwork_t *dfw, header_field_info *hfinfo, char *s) |
|
23 } |
|
24 |
|
25 if (g_ascii_strcasecmp(s, tf->true_string) == 0) { |
|
26 - return mk_uint32_fvalue(TRUE); |
|
27 + return mk_uint64_fvalue(TRUE); |
|
28 } |
|
29 else if (g_ascii_strcasecmp(s, tf->false_string) == 0) { |
|
30 - return mk_uint32_fvalue(FALSE); |
|
31 + return mk_uint64_fvalue(FALSE); |
|
32 } |
|
33 else { |
|
34 /* |
|
35 diff --git a/epan/ftypes/ftype-integer.c b/epan/ftypes/ftype-integer.c |
|
36 index b3e6cde..b95d7b5 100644 |
|
37 --- epan/ftypes/ftype-integer.c |
|
38 +++ epan/ftypes/ftype-integer.c |
|
39 @@ -675,7 +675,7 @@ cmp_bitwise_and64(const fvalue_t *a, const fvalue_t *b) |
|
40 static void |
|
41 boolean_fvalue_new(fvalue_t *fv) |
|
42 { |
|
43 - fv->value.uinteger = TRUE; |
|
44 + fv->value.uinteger64 = TRUE; |
|
45 } |
|
46 |
|
47 static int |
|
48 @@ -687,7 +687,7 @@ boolean_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_, int field_display _U_) |
|
49 static void |
|
50 boolean_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *buf) |
|
51 { |
|
52 - *buf++ = (fv->value.uinteger) ? '1' : '0'; |
|
53 + *buf++ = (fv->value.uinteger64) ? '1' : '0'; |
|
54 *buf = '\0'; |
|
55 } |
|
56 |
|
57 @@ -695,8 +695,8 @@ boolean_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, int field_display _U_, char *b |
|
58 static gboolean |
|
59 bool_eq(const fvalue_t *a, const fvalue_t *b) |
|
60 { |
|
61 - if (a->value.uinteger) { |
|
62 - if (b->value.uinteger) { |
|
63 + if (a->value.uinteger64) { |
|
64 + if (b->value.uinteger64) { |
|
65 return TRUE; |
|
66 } |
|
67 else { |
|
68 @@ -704,7 +704,7 @@ bool_eq(const fvalue_t *a, const fvalue_t *b) |
|
69 } |
|
70 } |
|
71 else { |
|
72 - if (b->value.uinteger) { |
|
73 + if (b->value.uinteger64) { |
|
74 return FALSE; |
|
75 } |
|
76 else { |
|
77 @@ -1503,14 +1503,14 @@ ftype_register_integers(void) |
|
78 NULL, /* set_value_time */ |
|
79 NULL, /* set_value_string */ |
|
80 NULL, /* set_value_tvbuff */ |
|
81 - set_uinteger, /* set_value_uinteger */ |
|
82 + NULL, /* set_value_uinteger */ |
|
83 NULL, /* set_value_sinteger */ |
|
84 set_uinteger64, /* set_value_uinteger64 */ |
|
85 NULL, /* set_value_sinteger64 */ |
|
86 NULL, /* set_value_floating */ |
|
87 |
|
88 NULL, /* get_value */ |
|
89 - get_uinteger, /* get_value_uinteger */ |
|
90 + NULL, /* get_value_uinteger */ |
|
91 NULL, /* get_value_sinteger */ |
|
92 get_uinteger64, /* get_value_uinteger64 */ |
|
93 NULL, /* get_value_sinteger64 */ |
|