Fix crash hit during PR's fuzzing job (#1126)
* Fix crash hit during PR's fuzzing job Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix crash hit during PR's fuzzing job Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * PR feedback and more coverage Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * PR feedback Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
This commit is contained in:
Родитель
e6c68671b2
Коммит
8106ab3ead
|
@ -1939,6 +1939,11 @@ ebpf_map_find_entry(
|
|||
}
|
||||
|
||||
if (ebpf_map_metadata_tables[map->ebpf_map_definition.type].find_entry == NULL) {
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_find_entry not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return EBPF_OPERATION_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
|
@ -2006,13 +2011,12 @@ ebpf_map_get_program_from_entry(_In_ ebpf_map_t* map, size_t key_size, _In_reads
|
|||
return NULL;
|
||||
}
|
||||
ebpf_map_type_t type = map->ebpf_map_definition.type;
|
||||
if (type != BPF_MAP_TYPE_PROG_ARRAY) {
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR, EBPF_TRACELOG_KEYWORD_MAP, "Operation not supported on map", type);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (ebpf_map_metadata_tables[type].get_object_from_entry == NULL) {
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_get_program_from_entry not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return NULL;
|
||||
}
|
||||
return (ebpf_program_t*)ebpf_map_metadata_tables[type].get_object_from_entry(map, key);
|
||||
|
@ -2125,6 +2129,16 @@ ebpf_map_delete_entry(_In_ ebpf_map_t* map, size_t key_size, _In_reads_(key_size
|
|||
map->ebpf_map_definition.key_size);
|
||||
return EBPF_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
if (ebpf_map_metadata_tables[map->ebpf_map_definition.type].delete_entry == NULL) {
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_delete_entry not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return EBPF_OPERATION_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
ebpf_result_t result = ebpf_map_metadata_tables[map->ebpf_map_definition.type].delete_entry(map, key);
|
||||
return result;
|
||||
}
|
||||
|
@ -2147,6 +2161,11 @@ ebpf_map_next_key(
|
|||
return EBPF_INVALID_ARGUMENT;
|
||||
}
|
||||
if (ebpf_map_metadata_tables[map->ebpf_map_definition.type].next_key == NULL) {
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_next_key not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return EBPF_OPERATION_NOT_SUPPORTED;
|
||||
}
|
||||
return ebpf_map_metadata_tables[map->ebpf_map_definition.type].next_key(map, previous_key, next_key);
|
||||
|
@ -2196,7 +2215,12 @@ ebpf_map_push_entry(_In_ ebpf_map_t* map, size_t value_size, _In_reads_(value_si
|
|||
}
|
||||
|
||||
if (ebpf_map_metadata_tables[map->ebpf_map_definition.type].update_entry == NULL) {
|
||||
return EBPF_INVALID_ARGUMENT;
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_push_entry not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return EBPF_OPERATION_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
return ebpf_map_metadata_tables[map->ebpf_map_definition.type].update_entry(map, NULL, value, flags);
|
||||
|
@ -2211,7 +2235,12 @@ ebpf_map_pop_entry(_In_ ebpf_map_t* map, size_t value_size, _Out_writes_(value_s
|
|||
}
|
||||
|
||||
if (ebpf_map_metadata_tables[map->ebpf_map_definition.type].find_entry == NULL) {
|
||||
return EBPF_INVALID_ARGUMENT;
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_pop_entry not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return EBPF_OPERATION_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
ebpf_result_t result =
|
||||
|
@ -2233,6 +2262,15 @@ ebpf_map_peek_entry(_In_ ebpf_map_t* map, size_t value_size, _Out_writes_(value_
|
|||
return EBPF_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
if (ebpf_map_metadata_tables[map->ebpf_map_definition.type].find_entry == NULL) {
|
||||
EBPF_LOG_MESSAGE_UINT64(
|
||||
EBPF_TRACELOG_LEVEL_ERROR,
|
||||
EBPF_TRACELOG_KEYWORD_MAP,
|
||||
"ebpf_map_peek_entry not supported on map",
|
||||
map->ebpf_map_definition.type);
|
||||
return EBPF_OPERATION_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
ebpf_result_t result =
|
||||
ebpf_map_metadata_tables[map->ebpf_map_definition.type].find_entry(map, NULL, false, &return_value);
|
||||
if (result != EBPF_SUCCESS) {
|
||||
|
|
|
@ -222,6 +222,13 @@ _test_crud_operations(ebpf_map_type_t map_type)
|
|||
auto retrieved_map_definition = *ebpf_map_get_definition(map.get());
|
||||
retrieved_map_definition.value_size = ebpf_map_get_effective_value_size(map.get());
|
||||
REQUIRE(memcmp(&retrieved_map_definition, &map_definition, sizeof(map_definition)) == 0);
|
||||
|
||||
// Negative test for key size.
|
||||
uint32_t key = 0;
|
||||
REQUIRE(
|
||||
ebpf_map_next_key(
|
||||
map.get(), sizeof(key) - 1, reinterpret_cast<uint8_t*>(&key), reinterpret_cast<uint8_t*>(&key)) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
}
|
||||
|
||||
#define MAP_TEST(MAP_TYPE) \
|
||||
|
@ -468,6 +475,39 @@ TEST_CASE("map_crud_operations_queue", "[execution_context]")
|
|||
REQUIRE(
|
||||
ebpf_map_pop_entry(map.get(), sizeof(return_value), reinterpret_cast<uint8_t*>(&return_value), 0) ==
|
||||
EBPF_OBJECT_NOT_FOUND);
|
||||
|
||||
// Negative tests.
|
||||
REQUIRE(
|
||||
ebpf_map_delete_entry(map.get(), sizeof(return_value), reinterpret_cast<uint8_t*>(&return_value), 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
REQUIRE(
|
||||
ebpf_map_delete_entry(map.get(), sizeof(return_value) - 1, reinterpret_cast<uint8_t*>(&return_value), 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
REQUIRE(
|
||||
ebpf_map_pop_entry(map.get(), sizeof(return_value) - 1, reinterpret_cast<uint8_t*>(&return_value), 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
REQUIRE(
|
||||
ebpf_map_push_entry(map.get(), sizeof(return_value) - 1, reinterpret_cast<uint8_t*>(&return_value), 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
REQUIRE(
|
||||
ebpf_map_peek_entry(map.get(), sizeof(return_value) - 1, reinterpret_cast<uint8_t*>(&return_value), 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
// Wrong key size.
|
||||
REQUIRE(
|
||||
ebpf_map_update_entry_with_handle(
|
||||
map.get(), sizeof(return_value) - 1, reinterpret_cast<uint8_t*>(&return_value), 0, EBPF_ANY) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
// Not supported.
|
||||
REQUIRE(
|
||||
ebpf_map_update_entry_with_handle(
|
||||
map.get(), sizeof(return_value), reinterpret_cast<uint8_t*>(&return_value), 0, EBPF_ANY) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
}
|
||||
|
||||
TEST_CASE("map_crud_operations_stack", "[execution_context]")
|
||||
|
@ -700,4 +740,37 @@ TEST_CASE("ring_buffer_async_query", "[execution_context]")
|
|||
REQUIRE(ebpf_ring_buffer_map_output(map.get(), reinterpret_cast<uint8_t*>(&value), sizeof(value)) == EBPF_SUCCESS);
|
||||
|
||||
REQUIRE(completion.value == value);
|
||||
}
|
||||
|
||||
{
|
||||
uint32_t key = 0;
|
||||
uint32_t value2 = 0;
|
||||
REQUIRE(
|
||||
ebpf_map_update_entry(map.get(), sizeof(key), reinterpret_cast<uint8_t*>(&key), 0, nullptr, EBPF_ANY, 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
// Negative test cases.
|
||||
REQUIRE(
|
||||
ebpf_map_update_entry(
|
||||
map.get(), 0, nullptr, sizeof(value2), reinterpret_cast<uint8_t*>(&value2), EBPF_ANY, 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
REQUIRE(ebpf_map_update_entry(map.get(), 0, nullptr, 0, nullptr, EBPF_ANY, 0) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
|
||||
REQUIRE(ebpf_map_get_program_from_entry(map.get(), sizeof(&key), reinterpret_cast<uint8_t*>(&key)) == nullptr);
|
||||
REQUIRE(ebpf_map_get_program_from_entry(map.get(), 0, 0) == nullptr);
|
||||
|
||||
REQUIRE(
|
||||
ebpf_map_find_entry(map.get(), sizeof(key), reinterpret_cast<uint8_t*>(&key), 0, nullptr, 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
REQUIRE(
|
||||
ebpf_map_find_entry(map.get(), 0, nullptr, sizeof(value2), reinterpret_cast<uint8_t*>(&value2), 0) ==
|
||||
EBPF_INVALID_ARGUMENT);
|
||||
|
||||
REQUIRE(ebpf_map_find_entry(map.get(), 0, nullptr, 0, nullptr, 0) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
REQUIRE(ebpf_map_delete_entry(map.get(), 0, nullptr, 0) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
REQUIRE(ebpf_map_next_key(map.get(), 0, nullptr, nullptr) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
REQUIRE(ebpf_map_push_entry(map.get(), 0, nullptr, 0) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
REQUIRE(ebpf_map_pop_entry(map.get(), 0, nullptr, 0) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
REQUIRE(ebpf_map_peek_entry(map.get(), 0, nullptr, 0) == EBPF_OPERATION_NOT_SUPPORTED);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -143,7 +143,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 23 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_REG pc=12 dst=r8 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_MOV64_REG pc=12 dst=r8 src=r0 offset=0 imm=0
|
||||
#line 23 "sample/printk.c"
|
||||
r8 = r0;
|
||||
// EBPF_OP_MOV64_IMM pc=13 dst=r1 src=r0 offset=0 imm=10
|
||||
|
@ -176,7 +176,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 24 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_REG pc=21 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_MOV64_REG pc=21 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 24 "sample/printk.c"
|
||||
r6 = r0;
|
||||
// EBPF_OP_CALL pc=22 dst=r0 src=r0 offset=0 imm=19
|
||||
|
@ -188,7 +188,7 @@ func(void* context)
|
|||
if ((func_helpers[1].tail_call) && (r0 == 0))
|
||||
#line 27 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=23 dst=r1 src=r0 offset=0 imm=977553744
|
||||
// EBPF_OP_LDDW pc=23 dst=r1 src=r0 offset=0 imm=977553744
|
||||
#line 27 "sample/printk.c"
|
||||
r1 = (uint64_t)32973392621881680;
|
||||
// EBPF_OP_STXDW pc=25 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -221,7 +221,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 28 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_ADD64_REG pc=33 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_ADD64_REG pc=33 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 28 "sample/printk.c"
|
||||
r6 += r0;
|
||||
// EBPF_OP_MOV64_IMM pc=34 dst=r8 src=r0 offset=0 imm=117
|
||||
|
@ -266,7 +266,7 @@ func(void* context)
|
|||
if ((func_helpers[3].tail_call) && (r0 == 0))
|
||||
#line 29 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_STXH pc=48 dst=r10 src=r8 offset=-4 imm=0
|
||||
// EBPF_OP_STXH pc=48 dst=r10 src=r8 offset=-4 imm=0
|
||||
#line 31 "sample/printk.c"
|
||||
*(uint16_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint16_t)r8;
|
||||
// EBPF_OP_MOV64_IMM pc=49 dst=r1 src=r0 offset=0 imm=622869070
|
||||
|
@ -320,7 +320,7 @@ func(void* context)
|
|||
if ((func_helpers[4].tail_call) && (r0 == 0))
|
||||
#line 31 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_IMM pc=66 dst=r1 src=r0 offset=0 imm=9504
|
||||
// EBPF_OP_MOV64_IMM pc=66 dst=r1 src=r0 offset=0 imm=9504
|
||||
#line 31 "sample/printk.c"
|
||||
r1 = IMMEDIATE(9504);
|
||||
// EBPF_OP_STXH pc=67 dst=r10 src=r1 offset=-28 imm=0
|
||||
|
@ -359,7 +359,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 35 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=77 dst=r1 src=r0 offset=0 imm=843333954
|
||||
// EBPF_OP_LDDW pc=77 dst=r1 src=r0 offset=0 imm=843333954
|
||||
#line 35 "sample/printk.c"
|
||||
r1 = (uint64_t)7812660273793483074;
|
||||
// EBPF_OP_STXDW pc=79 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -392,7 +392,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 36 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=87 dst=r1 src=r0 offset=0 imm=860111170
|
||||
// EBPF_OP_LDDW pc=87 dst=r1 src=r0 offset=0 imm=860111170
|
||||
#line 36 "sample/printk.c"
|
||||
r1 = (uint64_t)7220718397787750722;
|
||||
// EBPF_OP_STXDW pc=89 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -425,7 +425,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 37 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=97 dst=r1 src=r0 offset=0 imm=876888386
|
||||
// EBPF_OP_LDDW pc=97 dst=r1 src=r0 offset=0 imm=876888386
|
||||
#line 37 "sample/printk.c"
|
||||
r1 = (uint64_t)31566017637663042;
|
||||
// EBPF_OP_STXDW pc=99 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -455,7 +455,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 38 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_IMM pc=106 dst=r1 src=r0 offset=0 imm=893665602
|
||||
// EBPF_OP_MOV64_IMM pc=106 dst=r1 src=r0 offset=0 imm=893665602
|
||||
#line 38 "sample/printk.c"
|
||||
r1 = IMMEDIATE(893665602);
|
||||
// EBPF_OP_STXW pc=107 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -488,7 +488,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 42 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=115 dst=r1 src=r0 offset=0 imm=910442818
|
||||
// EBPF_OP_LDDW pc=115 dst=r1 src=r0 offset=0 imm=910442818
|
||||
#line 42 "sample/printk.c"
|
||||
r1 = (uint64_t)32973392554770754;
|
||||
// EBPF_OP_STXDW pc=117 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -515,7 +515,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 43 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_STXB pc=123 dst=r10 src=r8 offset=-22 imm=0
|
||||
// EBPF_OP_STXB pc=123 dst=r10 src=r8 offset=-22 imm=0
|
||||
#line 46 "sample/printk.c"
|
||||
*(uint8_t*)(uintptr_t)(r10 + OFFSET(-22)) = (uint8_t)r8;
|
||||
// EBPF_OP_MOV64_IMM pc=124 dst=r1 src=r0 offset=0 imm=25966
|
||||
|
@ -551,7 +551,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 46 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_ADD64_REG pc=134 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_ADD64_REG pc=134 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 46 "sample/printk.c"
|
||||
r6 += r0;
|
||||
// EBPF_OP_MOV64_REG pc=135 dst=r0 src=r6 offset=0 imm=0
|
||||
|
|
|
@ -105,7 +105,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 23 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_REG pc=12 dst=r8 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_MOV64_REG pc=12 dst=r8 src=r0 offset=0 imm=0
|
||||
#line 23 "sample/printk.c"
|
||||
r8 = r0;
|
||||
// EBPF_OP_MOV64_IMM pc=13 dst=r1 src=r0 offset=0 imm=10
|
||||
|
@ -138,7 +138,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 24 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_REG pc=21 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_MOV64_REG pc=21 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 24 "sample/printk.c"
|
||||
r6 = r0;
|
||||
// EBPF_OP_CALL pc=22 dst=r0 src=r0 offset=0 imm=19
|
||||
|
@ -150,7 +150,7 @@ func(void* context)
|
|||
if ((func_helpers[1].tail_call) && (r0 == 0))
|
||||
#line 27 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=23 dst=r1 src=r0 offset=0 imm=977553744
|
||||
// EBPF_OP_LDDW pc=23 dst=r1 src=r0 offset=0 imm=977553744
|
||||
#line 27 "sample/printk.c"
|
||||
r1 = (uint64_t)32973392621881680;
|
||||
// EBPF_OP_STXDW pc=25 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -183,7 +183,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 28 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_ADD64_REG pc=33 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_ADD64_REG pc=33 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 28 "sample/printk.c"
|
||||
r6 += r0;
|
||||
// EBPF_OP_MOV64_IMM pc=34 dst=r8 src=r0 offset=0 imm=117
|
||||
|
@ -228,7 +228,7 @@ func(void* context)
|
|||
if ((func_helpers[3].tail_call) && (r0 == 0))
|
||||
#line 29 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_STXH pc=48 dst=r10 src=r8 offset=-4 imm=0
|
||||
// EBPF_OP_STXH pc=48 dst=r10 src=r8 offset=-4 imm=0
|
||||
#line 31 "sample/printk.c"
|
||||
*(uint16_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint16_t)r8;
|
||||
// EBPF_OP_MOV64_IMM pc=49 dst=r1 src=r0 offset=0 imm=622869070
|
||||
|
@ -282,7 +282,7 @@ func(void* context)
|
|||
if ((func_helpers[4].tail_call) && (r0 == 0))
|
||||
#line 31 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_IMM pc=66 dst=r1 src=r0 offset=0 imm=9504
|
||||
// EBPF_OP_MOV64_IMM pc=66 dst=r1 src=r0 offset=0 imm=9504
|
||||
#line 31 "sample/printk.c"
|
||||
r1 = IMMEDIATE(9504);
|
||||
// EBPF_OP_STXH pc=67 dst=r10 src=r1 offset=-28 imm=0
|
||||
|
@ -321,7 +321,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 35 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=77 dst=r1 src=r0 offset=0 imm=843333954
|
||||
// EBPF_OP_LDDW pc=77 dst=r1 src=r0 offset=0 imm=843333954
|
||||
#line 35 "sample/printk.c"
|
||||
r1 = (uint64_t)7812660273793483074;
|
||||
// EBPF_OP_STXDW pc=79 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -354,7 +354,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 36 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=87 dst=r1 src=r0 offset=0 imm=860111170
|
||||
// EBPF_OP_LDDW pc=87 dst=r1 src=r0 offset=0 imm=860111170
|
||||
#line 36 "sample/printk.c"
|
||||
r1 = (uint64_t)7220718397787750722;
|
||||
// EBPF_OP_STXDW pc=89 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -387,7 +387,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 37 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=97 dst=r1 src=r0 offset=0 imm=876888386
|
||||
// EBPF_OP_LDDW pc=97 dst=r1 src=r0 offset=0 imm=876888386
|
||||
#line 37 "sample/printk.c"
|
||||
r1 = (uint64_t)31566017637663042;
|
||||
// EBPF_OP_STXDW pc=99 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -417,7 +417,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 38 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_IMM pc=106 dst=r1 src=r0 offset=0 imm=893665602
|
||||
// EBPF_OP_MOV64_IMM pc=106 dst=r1 src=r0 offset=0 imm=893665602
|
||||
#line 38 "sample/printk.c"
|
||||
r1 = IMMEDIATE(893665602);
|
||||
// EBPF_OP_STXW pc=107 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -450,7 +450,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 42 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=115 dst=r1 src=r0 offset=0 imm=910442818
|
||||
// EBPF_OP_LDDW pc=115 dst=r1 src=r0 offset=0 imm=910442818
|
||||
#line 42 "sample/printk.c"
|
||||
r1 = (uint64_t)32973392554770754;
|
||||
// EBPF_OP_STXDW pc=117 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -477,7 +477,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 43 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_STXB pc=123 dst=r10 src=r8 offset=-22 imm=0
|
||||
// EBPF_OP_STXB pc=123 dst=r10 src=r8 offset=-22 imm=0
|
||||
#line 46 "sample/printk.c"
|
||||
*(uint8_t*)(uintptr_t)(r10 + OFFSET(-22)) = (uint8_t)r8;
|
||||
// EBPF_OP_MOV64_IMM pc=124 dst=r1 src=r0 offset=0 imm=25966
|
||||
|
@ -513,7 +513,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 46 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_ADD64_REG pc=134 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_ADD64_REG pc=134 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 46 "sample/printk.c"
|
||||
r6 += r0;
|
||||
// EBPF_OP_MOV64_REG pc=135 dst=r0 src=r6 offset=0 imm=0
|
||||
|
|
|
@ -272,7 +272,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 23 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_REG pc=12 dst=r8 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_MOV64_REG pc=12 dst=r8 src=r0 offset=0 imm=0
|
||||
#line 23 "sample/printk.c"
|
||||
r8 = r0;
|
||||
// EBPF_OP_MOV64_IMM pc=13 dst=r1 src=r0 offset=0 imm=10
|
||||
|
@ -305,7 +305,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 24 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_REG pc=21 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_MOV64_REG pc=21 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 24 "sample/printk.c"
|
||||
r6 = r0;
|
||||
// EBPF_OP_CALL pc=22 dst=r0 src=r0 offset=0 imm=19
|
||||
|
@ -317,7 +317,7 @@ func(void* context)
|
|||
if ((func_helpers[1].tail_call) && (r0 == 0))
|
||||
#line 27 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=23 dst=r1 src=r0 offset=0 imm=977553744
|
||||
// EBPF_OP_LDDW pc=23 dst=r1 src=r0 offset=0 imm=977553744
|
||||
#line 27 "sample/printk.c"
|
||||
r1 = (uint64_t)32973392621881680;
|
||||
// EBPF_OP_STXDW pc=25 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -350,7 +350,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 28 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_ADD64_REG pc=33 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_ADD64_REG pc=33 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 28 "sample/printk.c"
|
||||
r6 += r0;
|
||||
// EBPF_OP_MOV64_IMM pc=34 dst=r8 src=r0 offset=0 imm=117
|
||||
|
@ -395,7 +395,7 @@ func(void* context)
|
|||
if ((func_helpers[3].tail_call) && (r0 == 0))
|
||||
#line 29 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_STXH pc=48 dst=r10 src=r8 offset=-4 imm=0
|
||||
// EBPF_OP_STXH pc=48 dst=r10 src=r8 offset=-4 imm=0
|
||||
#line 31 "sample/printk.c"
|
||||
*(uint16_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint16_t)r8;
|
||||
// EBPF_OP_MOV64_IMM pc=49 dst=r1 src=r0 offset=0 imm=622869070
|
||||
|
@ -449,7 +449,7 @@ func(void* context)
|
|||
if ((func_helpers[4].tail_call) && (r0 == 0))
|
||||
#line 31 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_IMM pc=66 dst=r1 src=r0 offset=0 imm=9504
|
||||
// EBPF_OP_MOV64_IMM pc=66 dst=r1 src=r0 offset=0 imm=9504
|
||||
#line 31 "sample/printk.c"
|
||||
r1 = IMMEDIATE(9504);
|
||||
// EBPF_OP_STXH pc=67 dst=r10 src=r1 offset=-28 imm=0
|
||||
|
@ -488,7 +488,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 35 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=77 dst=r1 src=r0 offset=0 imm=843333954
|
||||
// EBPF_OP_LDDW pc=77 dst=r1 src=r0 offset=0 imm=843333954
|
||||
#line 35 "sample/printk.c"
|
||||
r1 = (uint64_t)7812660273793483074;
|
||||
// EBPF_OP_STXDW pc=79 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -521,7 +521,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 36 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=87 dst=r1 src=r0 offset=0 imm=860111170
|
||||
// EBPF_OP_LDDW pc=87 dst=r1 src=r0 offset=0 imm=860111170
|
||||
#line 36 "sample/printk.c"
|
||||
r1 = (uint64_t)7220718397787750722;
|
||||
// EBPF_OP_STXDW pc=89 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -554,7 +554,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 37 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=97 dst=r1 src=r0 offset=0 imm=876888386
|
||||
// EBPF_OP_LDDW pc=97 dst=r1 src=r0 offset=0 imm=876888386
|
||||
#line 37 "sample/printk.c"
|
||||
r1 = (uint64_t)31566017637663042;
|
||||
// EBPF_OP_STXDW pc=99 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -584,7 +584,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 38 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_MOV64_IMM pc=106 dst=r1 src=r0 offset=0 imm=893665602
|
||||
// EBPF_OP_MOV64_IMM pc=106 dst=r1 src=r0 offset=0 imm=893665602
|
||||
#line 38 "sample/printk.c"
|
||||
r1 = IMMEDIATE(893665602);
|
||||
// EBPF_OP_STXW pc=107 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -617,7 +617,7 @@ func(void* context)
|
|||
if ((func_helpers[2].tail_call) && (r0 == 0))
|
||||
#line 42 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_LDDW pc=115 dst=r1 src=r0 offset=0 imm=910442818
|
||||
// EBPF_OP_LDDW pc=115 dst=r1 src=r0 offset=0 imm=910442818
|
||||
#line 42 "sample/printk.c"
|
||||
r1 = (uint64_t)32973392554770754;
|
||||
// EBPF_OP_STXDW pc=117 dst=r10 src=r1 offset=-32 imm=0
|
||||
|
@ -644,7 +644,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 43 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_STXB pc=123 dst=r10 src=r8 offset=-22 imm=0
|
||||
// EBPF_OP_STXB pc=123 dst=r10 src=r8 offset=-22 imm=0
|
||||
#line 46 "sample/printk.c"
|
||||
*(uint8_t*)(uintptr_t)(r10 + OFFSET(-22)) = (uint8_t)r8;
|
||||
// EBPF_OP_MOV64_IMM pc=124 dst=r1 src=r0 offset=0 imm=25966
|
||||
|
@ -680,7 +680,7 @@ func(void* context)
|
|||
if ((func_helpers[0].tail_call) && (r0 == 0))
|
||||
#line 46 "sample/printk.c"
|
||||
return 0;
|
||||
// EBPF_OP_ADD64_REG pc=134 dst=r6 src=r0 offset=0 imm=0
|
||||
// EBPF_OP_ADD64_REG pc=134 dst=r6 src=r0 offset=0 imm=0
|
||||
#line 46 "sample/printk.c"
|
||||
r6 += r0;
|
||||
// EBPF_OP_MOV64_REG pc=135 dst=r0 src=r6 offset=0 imm=0
|
||||
|
|
Загрузка…
Ссылка в новой задаче