@@ -39,19 +39,19 @@ static __always_inline struct file *bpf_fget(int fd)
39
39
if (!task )
40
40
return NULL ;
41
41
42
- files = _READ (task -> files );
42
+ files = _SYSDIG_READ (task , files );
43
43
if (!files )
44
44
return NULL ;
45
45
46
- fdt = _READ (files -> fdt );
46
+ fdt = _SYSDIG_READ (files , fdt );
47
47
if (!fdt )
48
48
return NULL ;
49
49
50
- max_fds = _READ (fdt -> max_fds );
50
+ max_fds = _SYSDIG_READ (fdt , max_fds );
51
51
if (fd >= max_fds )
52
52
return NULL ;
53
53
54
- fds = _READ (fdt -> fd );
54
+ fds = _SYSDIG_READ (fdt , fd );
55
55
fil = _READ (fds [fd ]);
56
56
57
57
return fil ;
@@ -71,11 +71,11 @@ static __always_inline struct socket *bpf_sockfd_lookup(struct filler_data *data
71
71
if (!file )
72
72
return NULL ;
73
73
74
- fop = _READ (file -> f_op );
74
+ fop = _SYSDIG_READ (file , f_op );
75
75
if (fop != data -> settings -> socket_file_ops )
76
76
return NULL ;
77
77
78
- sock = _READ (file -> private_data );
78
+ sock = _SYSDIG_READ (file , private_data );
79
79
return sock ;
80
80
}
81
81
@@ -98,18 +98,18 @@ static __always_inline bool bpf_get_fd_dev_ino(int fd, unsigned long *dev, unsig
98
98
if (!file )
99
99
return false;
100
100
101
- inode = _READ (file -> f_inode );
101
+ inode = _SYSDIG_READ (file , f_inode );
102
102
if (!inode )
103
103
return false;
104
104
105
- sb = _READ (inode -> i_sb );
105
+ sb = _SYSDIG_READ (inode , i_sb );
106
106
if (!sb )
107
107
return false;
108
108
109
- kdev = _READ (sb -> s_dev );
109
+ kdev = _SYSDIG_READ (sb , s_dev );
110
110
* dev = bpf_encode_dev (kdev );
111
111
112
- * ino = _READ (inode -> i_ino );
112
+ * ino = _SYSDIG_READ (inode , i_ino );
113
113
114
114
return true;
115
115
}
@@ -128,11 +128,11 @@ static __always_inline bool bpf_getsockname(struct socket *sock,
128
128
struct sock * sk ;
129
129
sa_family_t family ;
130
130
131
- sk = _READ (sock -> sk );
131
+ sk = _SYSDIG_READ (sock , sk );
132
132
if (!sk )
133
133
return false;
134
134
135
- family = _READ (sk -> sk_family );
135
+ family = _SYSDIG_READ (sk , sk_family );
136
136
137
137
switch (family ) {
138
138
case AF_INET :
@@ -142,14 +142,14 @@ static __always_inline bool bpf_getsockname(struct socket *sock,
142
142
143
143
sin -> sin_family = AF_INET ;
144
144
if (peer ) {
145
- sin -> sin_port = _READ (inet -> inet_dport );
146
- sin -> sin_addr .s_addr = _READ (inet -> inet_daddr );
145
+ sin -> sin_port = _SYSDIG_READ (inet , inet_dport );
146
+ sin -> sin_addr .s_addr = _SYSDIG_READ (inet , inet_daddr );
147
147
} else {
148
- u32 addr = _READ (inet -> inet_rcv_saddr );
148
+ u32 addr = _SYSDIG_READ (inet , inet_rcv_saddr );
149
149
150
150
if (!addr )
151
- addr = _READ (inet -> inet_saddr );
152
- sin -> sin_port = _READ (inet -> inet_sport );
151
+ addr = _SYSDIG_READ (inet , inet_saddr );
152
+ sin -> sin_port = _SYSDIG_READ (inet , inet_sport );
153
153
sin -> sin_addr .s_addr = addr ;
154
154
}
155
155
@@ -162,17 +162,17 @@ static __always_inline bool bpf_getsockname(struct socket *sock,
162
162
struct ipv6_pinfo {
163
163
struct in6_addr saddr ;
164
164
};
165
- struct ipv6_pinfo * np = (struct ipv6_pinfo * )_READ (inet -> pinet6 );
165
+ struct ipv6_pinfo * np = (struct ipv6_pinfo * )_SYSDIG_READ (inet , pinet6 );
166
166
167
167
sin -> sin6_family = AF_INET6 ;
168
168
if (peer ) {
169
- sin -> sin6_port = _READ (inet -> inet_dport );
170
- sin -> sin6_addr = _READ (sk -> sk_v6_daddr );
169
+ sin -> sin6_port = _SYSDIG_READ (inet , inet_dport );
170
+ sin -> sin6_addr = _SYSDIG_READ (sk , sk_v6_daddr );
171
171
} else {
172
- sin -> sin6_addr = _READ (sk -> sk_v6_rcv_saddr );
172
+ sin -> sin6_addr = _SYSDIG_READ (sk , sk_v6_rcv_saddr );
173
173
if (bpf_ipv6_addr_any (& sin -> sin6_addr ))
174
- sin -> sin6_addr = _READ (np -> saddr );
175
- sin -> sin6_port = _READ (inet -> inet_sport );
174
+ sin -> sin6_addr = _SYSDIG_READ (np , saddr );
175
+ sin -> sin6_port = _SYSDIG_READ (inet , inet_sport );
176
176
}
177
177
178
178
break ;
@@ -184,15 +184,15 @@ static __always_inline bool bpf_getsockname(struct socket *sock,
184
184
struct unix_address * addr ;
185
185
186
186
if (peer )
187
- sk = _READ (((struct unix_sock * )sk )-> peer );
187
+ sk = _SYSDIG_READ (((struct unix_sock * )sk ), peer );
188
188
189
189
u = (struct unix_sock * )sk ;
190
- addr = _READ ( u -> addr );
190
+ addr = _SYSDIG_READ ( u , addr );
191
191
if (!addr ) {
192
192
sunaddr -> sun_family = AF_UNIX ;
193
193
sunaddr -> sun_path [0 ] = 0 ;
194
194
} else {
195
- unsigned int len = _READ (addr -> len );
195
+ unsigned int len = _SYSDIG_READ (addr , len );
196
196
197
197
if (len > sizeof (struct sockaddr_storage ))
198
198
len = sizeof (struct sockaddr_storage );
@@ -217,8 +217,8 @@ static __always_inline bool bpf_getsockname(struct socket *sock,
217
217
static __always_inline int bpf_addr_to_kernel (void * uaddr , int ulen ,
218
218
struct sockaddr * kaddr )
219
219
{
220
- if (ulen < 0 || ulen > sizeof ( struct sockaddr_storage ) )
221
- return - EINVAL ;
220
+ if (ulen > BPF_MAX_VAR_SIZE )
221
+ return - EINVAL ;
222
222
223
223
if (ulen == 0 )
224
224
return 0 ;
@@ -256,11 +256,11 @@ static __always_inline u32 bpf_compute_snaplen(struct filler_data *data,
256
256
if (!fil )
257
257
return res ;
258
258
259
- f_inode = _READ (fil -> f_inode );
259
+ f_inode = _SYSDIG_READ (fil , f_inode );
260
260
if (!f_inode )
261
261
return res ;
262
262
263
- i_rdev = _READ (f_inode -> i_rdev );
263
+ i_rdev = _SYSDIG_READ (f_inode , i_rdev );
264
264
if (i_rdev == PPM_NULL_RDEV )
265
265
return RW_SNAPLEN_EVENT ;
266
266
}
@@ -325,11 +325,11 @@ static __always_inline u32 bpf_compute_snaplen(struct filler_data *data,
325
325
return res ;
326
326
}
327
327
328
- sk = _READ (sock -> sk );
328
+ sk = _SYSDIG_READ (sock , sk );
329
329
if (!sk )
330
330
return res ;
331
331
332
- sa_family_t family = _READ (sk -> sk_family );
332
+ sa_family_t family = _SYSDIG_READ (sk , sk_family );
333
333
334
334
if (family == AF_INET ) {
335
335
sport = ntohs (((struct sockaddr_in * )sock_address )-> sin_port );
@@ -528,11 +528,11 @@ static __always_inline long bpf_fd_to_socktuple(struct filler_data *data,
528
528
if (!bpf_getsockname (sock , sock_address , 0 ))
529
529
return 0 ;
530
530
531
- sk = _READ (sock -> sk );
531
+ sk = _SYSDIG_READ (sock , sk );
532
532
if (!sk )
533
533
return 0 ;
534
534
535
- family = _READ (sk -> sk_family );
535
+ family = _SYSDIG_READ (sk , sk_family );
536
536
537
537
switch (family ) {
538
538
case AF_INET :
@@ -652,7 +652,7 @@ static __always_inline long bpf_fd_to_socktuple(struct filler_data *data,
652
652
* Retrieve the addresses
653
653
*/
654
654
struct unix_sock * us = (struct unix_sock * )sk ;
655
- struct sock * speer = _READ (us -> peer );
655
+ struct sock * speer = _SYSDIG_READ (us , peer );
656
656
char * us_name ;
657
657
658
658
data -> buf [data -> state -> tail_ctx .curoff & SCRATCH_SIZE_HALF ] = socket_family_to_scap (family );
@@ -943,13 +943,13 @@ static __always_inline bool bpf_in_ia32_syscall()
943
943
task = (struct task_struct * )bpf_get_current_task ();
944
944
945
945
#if LINUX_VERSION_CODE < KERNEL_VERSION (4 , 14 , 18 )
946
- status = _READ (task -> thread .status );
946
+ status = _SYSDIG_READ (task , thread .status );
947
947
#elif LINUX_VERSION_CODE < KERNEL_VERSION (4 , 15 , 0 )
948
- status = _READ (task -> thread_info .status );
948
+ status = _SYSDIG_READ (task , thread_info .status );
949
949
#elif LINUX_VERSION_CODE < KERNEL_VERSION (4 , 15 , 2 )
950
- status = _READ (task -> thread .status );
950
+ status = _SYSDIG_READ (task , thread .status );
951
951
#else
952
- status = _READ (task -> thread_info .status );
952
+ status = _SYSDIG_READ (task , thread_info .status );
953
953
#endif
954
954
955
955
return status & TS_COMPAT ;
0 commit comments