projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: filter interpreter: use LTTNG_SIZE_MAX
[lttng-modules.git]
/
lttng-filter-interpreter.c
diff --git
a/lttng-filter-interpreter.c
b/lttng-filter-interpreter.c
index b1e5ba7360261a651386ebfa4485093a4a566237..637dd68fb27c90d41144ebbead8cbbaf5e2d37bb 100644
(file)
--- a/
lttng-filter-interpreter.c
+++ b/
lttng-filter-interpreter.c
@@
-572,7
+572,7
@@
static int dynamic_load_field(struct estack_entry *stack_top)
ret = -EINVAL;
goto end;
}
ret = -EINVAL;
goto end;
}
- stack_top->u.s.seq_len = SIZE_MAX;
+ stack_top->u.s.seq_len =
LTTNG_
SIZE_MAX;
stack_top->u.s.literal_type =
ESTACK_STRING_LITERAL_TYPE_NONE;
break;
stack_top->u.s.literal_type =
ESTACK_STRING_LITERAL_TYPE_NONE;
break;
@@
-771,6
+771,8
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
[ FILTER_OP_LOAD_FIELD_DOUBLE ] = &&LABEL_FILTER_OP_LOAD_FIELD_DOUBLE,
[ FILTER_OP_UNARY_BIT_NOT ] = &&LABEL_FILTER_OP_UNARY_BIT_NOT,
[ FILTER_OP_LOAD_FIELD_DOUBLE ] = &&LABEL_FILTER_OP_LOAD_FIELD_DOUBLE,
[ FILTER_OP_UNARY_BIT_NOT ] = &&LABEL_FILTER_OP_UNARY_BIT_NOT,
+
+ [ FILTER_OP_RETURN_S64 ] = &&LABEL_FILTER_OP_RETURN_S64,
};
#endif /* #ifndef INTERPRETER_USE_SWITCH */
};
#endif /* #ifndef INTERPRETER_USE_SWITCH */
@@
-788,6
+790,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
goto end;
OP(FILTER_OP_RETURN):
goto end;
OP(FILTER_OP_RETURN):
+ OP(FILTER_OP_RETURN_S64):
/* LTTNG_FILTER_DISCARD or LTTNG_FILTER_RECORD_FLAG */
retval = !!estack_ax_v;
ret = 0;
/* LTTNG_FILTER_DISCARD or LTTNG_FILTER_RECORD_FLAG */
retval = !!estack_ax_v;
ret = 0;
@@
-995,7
+998,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
ret = -EINVAL;
goto end;
}
ret = -EINVAL;
goto end;
}
- res = (
estack_bx_v >>
estack_ax_v);
+ res = (
(uint64_t) estack_bx_v >> (uint32_t)
estack_ax_v);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
@@
-1010,7
+1013,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
ret = -EINVAL;
goto end;
}
ret = -EINVAL;
goto end;
}
- res = (
estack_bx_v <<
estack_ax_v);
+ res = (
(uint64_t) estack_bx_v << (uint32_t)
estack_ax_v);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
@@
-1020,7
+1023,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
{
int64_t res;
{
int64_t res;
- res = (
estack_bx_v &
estack_ax_v);
+ res = (
(uint64_t) estack_bx_v & (uint64_t)
estack_ax_v);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
@@
-1030,7
+1033,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
{
int64_t res;
{
int64_t res;
- res = (
estack_bx_v |
estack_ax_v);
+ res = (
(uint64_t) estack_bx_v | (uint64_t)
estack_ax_v);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
@@
-1040,7
+1043,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
{
int64_t res;
{
int64_t res;
- res = (
estack_bx_v ^
estack_ax_v);
+ res = (
(uint64_t) estack_bx_v ^ (uint64_t)
estack_ax_v);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
estack_pop(stack, top, ax, bx);
estack_ax_v = res;
next_pc += sizeof(struct binary_op);
@@
-1059,7
+1062,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
OP(FILTER_OP_UNARY_BIT_NOT):
{
OP(FILTER_OP_UNARY_BIT_NOT):
{
- estack_ax_v = ~estack_ax_v;
+ estack_ax_v = ~
(uint64_t)
estack_ax_v;
next_pc += sizeof(struct unary_op);
PO;
}
next_pc += sizeof(struct unary_op);
PO;
}
@@
-1556,7
+1559,7
@@
uint64_t lttng_filter_interpret_bytecode(void *filter_data,
ret = -EINVAL;
goto end;
}
ret = -EINVAL;
goto end;
}
- estack_ax(stack, top)->u.s.seq_len = SIZE_MAX;
+ estack_ax(stack, top)->u.s.seq_len =
LTTNG_
SIZE_MAX;
estack_ax(stack, top)->u.s.literal_type =
ESTACK_STRING_LITERAL_TYPE_NONE;
next_pc += sizeof(struct load_op);
estack_ax(stack, top)->u.s.literal_type =
ESTACK_STRING_LITERAL_TYPE_NONE;
next_pc += sizeof(struct load_op);
This page took
0.025914 seconds
and
4
git commands to generate.