Просмотр исходного кода

Fixed #TASK_GK-2944 java横向串联

Carl 1 год назад
Родитель
Сommit
36c56275e5

+ 2 - 0
ebpftracer/ebpf/include/bpf_base.h

@@ -59,6 +59,8 @@ static long (*bpf_probe_read_user) (void *dst, __u32 size, const void *unsafe_pt
 
 static long (*bpf_probe_write_user)(void *dst, const void *src, __u32 len) = (void *) 36;
 
+static long (*bpf_probe_read_user_str)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 114;
+
 #if __GNUC__ && !__clang__
 #define SEC(name) __attribute__((section(name), used))
 #else

+ 3 - 1
ebpftracer/ebpf/utrace/java/net/server.probe.bpf.c

@@ -7,7 +7,6 @@
 // #include "bpf_base.h"
 // #define ROCK_MAX_BUFFER_SIZE 65536
 
-static long (*bpf_probe_read_user_str)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 114;
 #define ROCK_MAX_LEN 1022
 
 struct sock_t {
@@ -126,6 +125,9 @@ int uprobe_Java_sun_nio_ch_FileDispatcherImpl_read0(struct pt_regs *ctx) {
 		return 0;
 	// struct apm_span_context cw_parent_span_context = {};
 	struct apm_span_context *cw_parent_span_context = bpf_map_lookup_elem(&apm_span_context_heap, &key);
+	if (cw_parent_span_context == NULL){
+		return -1;
+	}
     if(offset > 0 && offset < 512 - 123)
 	{
         __builtin_memcpy(data, &(map_data->payload[offset]), 123);