]>
Commit | Line | Data |
---|---|---|
c12e2ab2 JR |
1 | diff --git a/driver/main.c b/driver/main.c |
2 | index a2b0b645..fc876858 100644 | |
3 | --- a/driver/main.c | |
4 | +++ b/driver/main.c | |
5 | @@ -216,6 +216,15 @@ do { \ | |
6 | pr_info(fmt, ##__VA_ARGS__); \ | |
7 | } while (0) | |
8 | ||
9 | +inline void ppm_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, unsigned long *args) | |
10 | +{ | |
11 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)) | |
12 | + syscall_get_arguments(task, regs, 0, 6, args); | |
13 | +#else | |
14 | + syscall_get_arguments(task, regs, args); | |
912b01b0 | 15 | +#endif |
c12e2ab2 JR |
16 | +} |
17 | + | |
18 | /* compat tracepoint functions */ | |
19 | static int compat_register_trace(void *func, const char *probename, struct tracepoint *tp) | |
20 | { | |
21 | @@ -1284,11 +1293,10 @@ static const unsigned char compat_nas[21] = { | |
22 | #ifdef _HAS_SOCKETCALL | |
23 | static enum ppm_event_type parse_socketcall(struct event_filler_arguments *filler_args, struct pt_regs *regs) | |
24 | { | |
25 | - unsigned long __user args[2]; | |
26 | + unsigned long __user args[6] = {}; | |
27 | unsigned long __user *scargs; | |
28 | int socketcall_id; | |
29 | - | |
30 | - syscall_get_arguments(current, regs, 0, 2, args); | |
31 | + ppm_syscall_get_arguments(current, regs, args); | |
32 | socketcall_id = args[0]; | |
33 | scargs = (unsigned long __user *)args[1]; | |
34 | ||
35 | @@ -1403,6 +1411,7 @@ static inline void record_drop_x(struct ppm_consumer_t *consumer, struct timespe | |
36 | static inline int drop_nostate_event(enum ppm_event_type event_type, | |
37 | struct pt_regs *regs) | |
38 | { | |
39 | + unsigned long args[6] = {}; | |
40 | unsigned long arg = 0; | |
41 | int close_fd = -1; | |
42 | struct files_struct *files; | |
43 | @@ -1424,7 +1433,8 @@ static inline int drop_nostate_event(enum ppm_event_type event_type, | |
44 | * The invalid fd events don't matter to userspace in dropping mode, | |
45 | * so we do this before the UF_NEVER_DROP check | |
46 | */ | |
47 | - syscall_get_arguments(current, regs, 0, 1, &arg); | |
48 | + ppm_syscall_get_arguments(current, regs, args); | |
49 | + arg = args[0]; | |
50 | close_fd = (int)arg; | |
51 | ||
52 | files = current->files; | |
53 | @@ -1444,7 +1454,8 @@ static inline int drop_nostate_event(enum ppm_event_type event_type, | |
54 | case PPME_SYSCALL_FCNTL_E: | |
55 | case PPME_SYSCALL_FCNTL_X: | |
56 | // cmd arg | |
57 | - syscall_get_arguments(current, regs, 1, 1, &arg); | |
58 | + ppm_syscall_get_arguments(current, regs, args); | |
59 | + arg = args[1]; | |
60 | if (arg != F_DUPFD && arg != F_DUPFD_CLOEXEC) | |
61 | drop = true; | |
62 | break; | |
63 | diff --git a/driver/ppm.h b/driver/ppm.h | |
64 | index 6ecc2b71..6077fa42 100644 | |
65 | --- a/driver/ppm.h | |
66 | +++ b/driver/ppm.h | |
67 | @@ -113,4 +113,6 @@ extern const struct syscall_evt_pair g_syscall_ia32_table[]; | |
68 | extern const enum ppm_syscall_code g_syscall_ia32_code_routing_table[]; | |
69 | #endif | |
70 | ||
71 | +extern void ppm_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, unsigned long *args); | |
72 | + | |
73 | #endif /* PPM_H_ */ | |
74 | diff --git a/driver/ppm_events.c b/driver/ppm_events.c | |
75 | index 71759088..fd96acd8 100644 | |
76 | --- a/driver/ppm_events.c | |
77 | +++ b/driver/ppm_events.c | |
78 | @@ -240,14 +249,16 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l | |
79 | if (err == 0) { | |
80 | if(args->event_type == PPME_SOCKET_SENDTO_X) | |
81 | { | |
82 | + unsigned long syscall_args[6] = {}; | |
83 | unsigned long val; | |
84 | struct sockaddr __user * usrsockaddr; | |
85 | /* | |
86 | * Get the address | |
87 | */ | |
88 | - if (!args->is_socketcall) | |
89 | - syscall_get_arguments(current, args->regs, 4, 1, &val); | |
90 | - else | |
91 | + if (!args->is_socketcall) { | |
92 | + ppm_syscall_get_arguments(current, args->regs, syscall_args); | |
93 | + val = syscall_args[4]; | |
94 | + } else | |
95 | val = args->socketcall_args[4]; | |
96 | ||
97 | usrsockaddr = (struct sockaddr __user *)val; | |
98 | @@ -261,9 +272,10 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l | |
99 | /* | |
100 | * Get the address len | |
101 | */ | |
102 | - if (!args->is_socketcall) | |
103 | - syscall_get_arguments(current, args->regs, 5, 1, &val); | |
104 | - else | |
105 | + if (!args->is_socketcall) { | |
106 | + ppm_syscall_get_arguments(current, args->regs, syscall_args); | |
107 | + val = syscall_args[5]; | |
108 | + } else | |
109 | val = args->socketcall_args[5]; | |
110 | ||
111 | if (val != 0) { | |
112 | @@ -279,6 +291,7 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l | |
113 | } | |
114 | } | |
115 | } else if (args->event_type == PPME_SOCKET_SENDMSG_X) { | |
116 | + unsigned long syscall_args[6] = {}; | |
117 | unsigned long val; | |
118 | struct sockaddr __user * usrsockaddr; | |
119 | int addrlen; | |
120 | @@ -291,9 +304,10 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l | |
121 | struct msghdr mh; | |
122 | #endif | |
123 | ||
124 | - if (!args->is_socketcall) | |
125 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
126 | - else | |
127 | + if (!args->is_socketcall) { | |
128 | + ppm_syscall_get_arguments(current, args->regs, syscall_args); | |
129 | + val = syscall_args[1]; | |
130 | + } else | |
131 | val = args->socketcall_args[1]; | |
132 | ||
133 | #ifdef CONFIG_COMPAT | |
134 | @@ -1102,6 +1118,7 @@ int32_t parse_readv_writev_bufs(struct event_filler_arguments *args, const struc | |
135 | unsigned long bufsize; | |
136 | char *targetbuf = args->str_storage; | |
137 | u32 targetbuflen = STR_STORAGE_SIZE; | |
138 | + unsigned long syscall_args[6] = {}; | |
139 | unsigned long val; | |
140 | u32 notcopied_len; | |
141 | size_t tocopy_len; | |
142 | @@ -1147,9 +1164,10 @@ int32_t parse_readv_writev_bufs(struct event_filler_arguments *args, const struc | |
143 | /* | |
144 | * Retrieve the FD. It will be used for dynamic snaplen calculation. | |
145 | */ | |
146 | - if (!args->is_socketcall) | |
147 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
148 | - else | |
149 | + if (!args->is_socketcall) { | |
150 | + ppm_syscall_get_arguments(current, args->regs, syscall_args); | |
151 | + val = syscall_args[0]; | |
152 | + } else | |
153 | val = args->socketcall_args[0]; | |
154 | args->fd = (int)val; | |
155 | ||
156 | @@ -1233,6 +1251,7 @@ int32_t compat_parse_readv_writev_bufs(struct event_filler_arguments *args, cons | |
157 | unsigned long bufsize; | |
158 | char *targetbuf = args->str_storage; | |
159 | u32 targetbuflen = STR_STORAGE_SIZE; | |
160 | + unsigned long syscall_args[6] = {}; | |
161 | unsigned long val; | |
162 | u32 notcopied_len; | |
163 | compat_size_t tocopy_len; | |
164 | @@ -1278,9 +1297,10 @@ int32_t compat_parse_readv_writev_bufs(struct event_filler_arguments *args, cons | |
165 | /* | |
166 | * Retrieve the FD. It will be used for dynamic snaplen calculation. | |
167 | */ | |
168 | - if (!args->is_socketcall) | |
169 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
170 | - else | |
171 | + if (!args->is_socketcall) { | |
172 | + ppm_syscall_get_arguments(current, args->regs, syscall_args); | |
173 | + val = syscall_args[0]; | |
174 | + } else | |
175 | val = args->socketcall_args[0]; | |
176 | args->fd = (int)val; | |
177 | ||
178 | @@ -1364,6 +1384,7 @@ int32_t compat_parse_readv_writev_bufs(struct event_filler_arguments *args, cons | |
179 | int f_sys_autofill(struct event_filler_arguments *args) | |
180 | { | |
181 | int res; | |
182 | + unsigned long syscall_args[6] = {}; | |
183 | unsigned long val; | |
184 | u32 j; | |
185 | int64_t retval; | |
186 | @@ -1382,11 +1403,8 @@ int f_sys_autofill(struct event_filler_arguments *args) | |
187 | /* | |
188 | * Regular argument | |
189 | */ | |
190 | - syscall_get_arguments(current, | |
191 | - args->regs, | |
192 | - evinfo->autofill_args[j].id, | |
193 | - 1, | |
194 | - &val); | |
195 | + ppm_syscall_get_arguments(current, args->regs, syscall_args); | |
196 | + val = syscall_args[evinfo->autofill_args[j].id]; | |
197 | } | |
198 | ||
199 | res = val_to_ring(args, val, 0, true, 0); | |
200 | diff --git a/driver/ppm_fillers.c b/driver/ppm_fillers.c | |
201 | index ccf092f1..883827af 100644 | |
202 | --- a/driver/ppm_fillers.c | |
203 | +++ b/driver/ppm_fillers.c | |
204 | @@ -46,6 +47,23 @@ or GPL2.txt for full copies of the license. | |
205 | ||
206 | #define merge_64(hi, lo) ((((unsigned long long)(hi)) << 32) + ((lo) & 0xffffffffUL)) | |
207 | ||
208 | +/* | |
209 | + * Linux 5.1 kernels modify the syscall_get_arguments function to always | |
210 | + * return all arguments rather than allowing the caller to select which | |
211 | + * arguments are desired. This wrapper replicates the original | |
212 | + * functionality. | |
213 | + */ | |
214 | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)) | |
215 | +#define syscall_get_arguments_deprecated syscall_get_arguments | |
216 | +#else | |
217 | +#define syscall_get_arguments_deprecated(_task, _reg, _start, _len, _args) \ | |
218 | + do { \ | |
219 | + unsigned long _sga_args[6] = {}; \ | |
220 | + syscall_get_arguments(_task, _reg, _sga_args); \ | |
221 | + memcpy(_args, &_sga_args[_start], _len); \ | |
222 | + } while(0) | |
223 | +#endif | |
224 | + | |
225 | int f_sys_generic(struct event_filler_arguments *args) | |
226 | { | |
227 | int res; | |
228 | @@ -107,7 +132,7 @@ int f_sys_single(struct event_filler_arguments *args) | |
229 | int res; | |
230 | unsigned long val; | |
231 | ||
232 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
233 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
234 | res = val_to_ring(args, val, 0, true, 0); | |
235 | if (unlikely(res != PPM_SUCCESS)) | |
236 | return res; | |
237 | @@ -147,7 +212,7 @@ int f_sys_open_x(struct event_filler_arguments *args) | |
238 | /* | |
239 | * name | |
240 | */ | |
241 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
242 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
243 | res = val_to_ring(args, val, 0, true, 0); | |
244 | if (unlikely(res != PPM_SUCCESS)) | |
245 | return res; | |
246 | @@ -156,7 +221,7 @@ int f_sys_open_x(struct event_filler_arguments *args) | |
247 | * Flags | |
248 | * Note that we convert them into the ppm portable representation before pushing them to the ring | |
249 | */ | |
250 | - syscall_get_arguments(current, args->regs, 1, 1, &flags); | |
251 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &flags); | |
252 | res = val_to_ring(args, open_flags_to_scap(flags), 0, false, 0); | |
253 | if (unlikely(res != PPM_SUCCESS)) | |
254 | return res; | |
255 | @@ -164,7 +229,7 @@ int f_sys_open_x(struct event_filler_arguments *args) | |
256 | /* | |
257 | * mode | |
258 | */ | |
259 | - syscall_get_arguments(current, args->regs, 2, 1, &modes); | |
260 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &modes); | |
261 | res = val_to_ring(args, open_modes_to_scap(flags, modes), 0, false, 0); | |
262 | if (unlikely(res != PPM_SUCCESS)) | |
263 | return res; | |
264 | @@ -182,7 +254,7 @@ int f_sys_read_x(struct event_filler_arguments *args) | |
265 | /* | |
266 | * Retrieve the FD. It will be used for dynamic snaplen calculation. | |
267 | */ | |
268 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
269 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
270 | args->fd = (int)val; | |
271 | ||
272 | /* | |
273 | @@ -203,7 +275,7 @@ int f_sys_read_x(struct event_filler_arguments *args) | |
274 | val = 0; | |
275 | bufsize = 0; | |
276 | } else { | |
277 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
278 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
279 | ||
280 | /* | |
281 | * The return value can be lower than the value provided by the user, | |
282 | @@ -233,7 +305,7 @@ int f_sys_write_x(struct event_filler_arguments *args) | |
283 | /* | |
284 | * Retrieve the FD. It will be used for dynamic snaplen calculation. | |
285 | */ | |
286 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
287 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
288 | args->fd = (int)val; | |
289 | ||
290 | /* | |
291 | @@ -248,13 +320,13 @@ int f_sys_write_x(struct event_filler_arguments *args) | |
292 | /* | |
293 | * data | |
294 | */ | |
295 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
296 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
297 | bufsize = val; | |
298 | ||
299 | /* | |
300 | * Copy the buffer | |
301 | */ | |
302 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
303 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
304 | args->enforce_snaplen = true; | |
305 | res = val_to_ring(args, val, bufsize, true, 0); | |
306 | if (unlikely(res != PPM_SUCCESS)) | |
307 | @@ -693,7 +765,7 @@ int f_proc_startupdate(struct event_filler_arguments *args) | |
308 | */ | |
309 | args->str_storage[0] = 0; | |
310 | ||
311 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
312 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
313 | #ifdef CONFIG_COMPAT | |
314 | if (unlikely(args->compat)) | |
315 | args_len = compat_accumulate_argv_or_env((compat_uptr_t)val, | |
316 | @@ -865,9 +937,9 @@ cgroups_error: | |
317 | */ | |
318 | if (args->event_type == PPME_SYSCALL_CLONE_20_X) { | |
319 | #ifdef CONFIG_S390 | |
320 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
321 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
322 | #else | |
323 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
324 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
325 | #endif | |
326 | } else | |
327 | val = 0; | |
328 | @@ -940,7 +1012,7 @@ cgroups_error: | |
329 | /* | |
330 | * The call failed, so get the env from the arguments | |
331 | */ | |
332 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
333 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
334 | #ifdef CONFIG_COMPAT | |
335 | if (unlikely(args->compat)) | |
336 | env_len = compat_accumulate_argv_or_env((compat_uptr_t)val, | |
337 | @@ -1009,7 +1081,7 @@ int f_sys_execve_e(struct event_filler_arguments *args) | |
338 | /* | |
339 | * filename | |
340 | */ | |
341 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
342 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
343 | res = val_to_ring(args, val, 0, true, 0); | |
344 | if (res == PPM_FAILURE_INVALID_USER_MEMORY) | |
345 | res = val_to_ring(args, (unsigned long)"<NA>", 0, false, 0); | |
346 | @@ -1041,7 +1113,7 @@ int f_sys_socket_bind_x(struct event_filler_arguments *args) | |
347 | * addr | |
348 | */ | |
349 | if (!args->is_socketcall) | |
350 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
351 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
352 | else | |
353 | val = args->socketcall_args[1]; | |
354 | ||
355 | @@ -1051,7 +1123,7 @@ int f_sys_socket_bind_x(struct event_filler_arguments *args) | |
356 | * Get the address len | |
357 | */ | |
358 | if (!args->is_socketcall) | |
359 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
360 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
361 | else | |
362 | val = args->socketcall_args[2]; | |
363 | ||
364 | @@ -1109,7 +1181,7 @@ int f_sys_connect_x(struct event_filler_arguments *args) | |
365 | * in the stack, and therefore we can consume them. | |
366 | */ | |
367 | if (!args->is_socketcall) { | |
368 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
369 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
370 | fd = (int)val; | |
371 | } else | |
372 | fd = (int)args->socketcall_args[0]; | |
373 | @@ -1119,7 +1191,7 @@ int f_sys_connect_x(struct event_filler_arguments *args) | |
374 | * Get the address | |
375 | */ | |
376 | if (!args->is_socketcall) | |
377 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
378 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
379 | else | |
380 | val = args->socketcall_args[1]; | |
381 | ||
382 | @@ -1129,7 +1201,7 @@ int f_sys_connect_x(struct event_filler_arguments *args) | |
383 | * Get the address len | |
384 | */ | |
385 | if (!args->is_socketcall) | |
386 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
387 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
388 | else | |
389 | val = args->socketcall_args[2]; | |
390 | ||
391 | @@ -1194,7 +1266,7 @@ int f_sys_socketpair_x(struct event_filler_arguments *args) | |
392 | * fds | |
393 | */ | |
394 | if (!args->is_socketcall) | |
395 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
396 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
397 | else | |
398 | val = args->socketcall_args[3]; | |
399 | #ifdef CONFIG_COMPAT | |
400 | @@ -1427,9 +1499,9 @@ int f_sys_setsockopt_x(struct event_filler_arguments *args) | |
401 | { | |
402 | int res; | |
403 | int64_t retval; | |
404 | - unsigned long val[5]; | |
405 | + unsigned long val[5] = {}; | |
406 | ||
407 | - syscall_get_arguments(current, args->regs, 0, 5, val); | |
408 | + syscall_get_arguments_deprecated(current, args->regs, 0, 5, val); | |
409 | retval = (int64_t)(long)syscall_get_return_value(current, args->regs); | |
410 | ||
411 | /* retval */ | |
412 | @@ -1471,9 +1543,9 @@ int f_sys_getsockopt_x(struct event_filler_arguments *args) | |
413 | int res; | |
414 | int64_t retval; | |
415 | uint32_t optlen; | |
416 | - unsigned long val[5]; | |
417 | + unsigned long val[5] = {}; | |
418 | ||
419 | - syscall_get_arguments(current, args->regs, 0, 5, val); | |
420 | + syscall_get_arguments_deprecated(current, args->regs, 0, 5, val); | |
421 | retval = (int64_t)(long)syscall_get_return_value(current, args->regs); | |
422 | ||
423 | /* retval */ | |
424 | @@ -1575,7 +1647,7 @@ int f_sys_accept_x(struct event_filler_arguments *args) | |
425 | * queuepct | |
426 | */ | |
427 | if (!args->is_socketcall) | |
428 | - syscall_get_arguments(current, args->regs, 0, 1, &srvskfd); | |
429 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &srvskfd); | |
430 | else | |
431 | srvskfd = args->socketcall_args[0]; | |
432 | ||
433 | @@ -1617,7 +1689,7 @@ int f_sys_send_e_common(struct event_filler_arguments *args, int *fd) | |
434 | * fd | |
435 | */ | |
436 | if (!args->is_socketcall) | |
437 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
438 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
439 | else | |
440 | val = args->socketcall_args[0]; | |
441 | ||
442 | @@ -1631,7 +1703,7 @@ int f_sys_send_e_common(struct event_filler_arguments *args, int *fd) | |
443 | * size | |
444 | */ | |
445 | if (!args->is_socketcall) | |
446 | - syscall_get_arguments(current, args->regs, 2, 1, &size); | |
447 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &size); | |
448 | else | |
449 | size = args->socketcall_args[2]; | |
450 | ||
451 | @@ -1678,7 +1750,7 @@ int f_sys_sendto_e(struct event_filler_arguments *args) | |
452 | * Get the address | |
453 | */ | |
454 | if (!args->is_socketcall) | |
455 | - syscall_get_arguments(current, args->regs, 4, 1, &val); | |
456 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); | |
457 | else | |
458 | val = args->socketcall_args[4]; | |
459 | ||
460 | @@ -1688,7 +1760,7 @@ int f_sys_sendto_e(struct event_filler_arguments *args) | |
461 | * Get the address len | |
462 | */ | |
463 | if (!args->is_socketcall) | |
464 | - syscall_get_arguments(current, args->regs, 5, 1, &val); | |
465 | + syscall_get_arguments_deprecated(current, args->regs, 5, 1, &val); | |
466 | else | |
467 | val = args->socketcall_args[5]; | |
468 | ||
469 | @@ -1736,7 +1808,7 @@ int f_sys_send_x(struct event_filler_arguments *args) | |
470 | * Retrieve the FD. It will be used for dynamic snaplen calculation. | |
471 | */ | |
472 | if (!args->is_socketcall) | |
473 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
474 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
475 | else | |
476 | val = args->socketcall_args[0]; | |
477 | ||
478 | @@ -1761,7 +1833,7 @@ int f_sys_send_x(struct event_filler_arguments *args) | |
479 | bufsize = 0; | |
480 | } else { | |
481 | if (!args->is_socketcall) | |
482 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
483 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
484 | else | |
485 | val = args->socketcall_args[1]; | |
486 | ||
487 | @@ -1790,7 +1862,7 @@ int f_sys_recv_x_common(struct event_filler_arguments *args, int64_t *retval) | |
488 | * Retrieve the FD. It will be used for dynamic snaplen calculation. | |
489 | */ | |
490 | if (!args->is_socketcall) | |
491 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
492 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
493 | else | |
494 | val = args->socketcall_args[1]; | |
495 | ||
496 | @@ -1815,7 +1887,7 @@ int f_sys_recv_x_common(struct event_filler_arguments *args, int64_t *retval) | |
497 | bufsize = 0; | |
498 | } else { | |
499 | if (!args->is_socketcall) | |
500 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
501 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
502 | else | |
503 | val = args->socketcall_args[1]; | |
504 | ||
505 | @@ -1871,7 +1943,7 @@ int f_sys_recvfrom_x(struct event_filler_arguments *args) | |
506 | * Get the fd | |
507 | */ | |
508 | if (!args->is_socketcall) { | |
509 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
510 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
511 | fd = (int)val; | |
512 | } else | |
513 | fd = (int)args->socketcall_args[0]; | |
514 | @@ -1880,7 +1952,7 @@ int f_sys_recvfrom_x(struct event_filler_arguments *args) | |
515 | * Get the address | |
516 | */ | |
517 | if (!args->is_socketcall) | |
518 | - syscall_get_arguments(current, args->regs, 4, 1, &val); | |
519 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); | |
520 | else | |
521 | val = args->socketcall_args[4]; | |
522 | usrsockaddr = (struct sockaddr __user *)val; | |
523 | @@ -1889,7 +1961,7 @@ int f_sys_recvfrom_x(struct event_filler_arguments *args) | |
524 | * Get the address len | |
525 | */ | |
526 | if (!args->is_socketcall) | |
527 | - syscall_get_arguments(current, args->regs, 5, 1, &val); | |
528 | + syscall_get_arguments_deprecated(current, args->regs, 5, 1, &val); | |
529 | else | |
530 | val = args->socketcall_args[5]; | |
531 | if (usrsockaddr != NULL && val != 0) { | |
532 | @@ -1965,7 +2037,7 @@ int f_sys_sendmsg_e(struct event_filler_arguments *args) | |
533 | * fd | |
534 | */ | |
535 | if (!args->is_socketcall) | |
536 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
537 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
538 | else | |
539 | val = args->socketcall_args[0]; | |
540 | ||
541 | @@ -1978,7 +2050,7 @@ int f_sys_sendmsg_e(struct event_filler_arguments *args) | |
542 | * Retrieve the message header | |
543 | */ | |
544 | if (!args->is_socketcall) | |
545 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
546 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
547 | else | |
548 | val = args->socketcall_args[1]; | |
549 | ||
550 | @@ -2090,7 +2162,7 @@ int f_sys_sendmsg_x(struct event_filler_arguments *args) | |
551 | * Retrieve the message header | |
552 | */ | |
553 | if (!args->is_socketcall) | |
554 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
555 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
556 | else | |
557 | val = args->socketcall_args[1]; | |
558 | ||
559 | @@ -2163,7 +2235,7 @@ int f_sys_recvmsg_x(struct event_filler_arguments *args) | |
560 | * Retrieve the message header | |
561 | */ | |
562 | if (!args->is_socketcall) | |
563 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
564 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
565 | else | |
566 | val = args->socketcall_args[1]; | |
567 | ||
568 | @@ -2207,7 +2279,7 @@ int f_sys_recvmsg_x(struct event_filler_arguments *args) | |
569 | * Get the fd | |
570 | */ | |
571 | if (!args->is_socketcall) { | |
572 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
573 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
574 | fd = (int)val; | |
575 | } else | |
576 | fd = (int)args->socketcall_args[0]; | |
577 | @@ -2269,7 +2382,7 @@ int f_sys_pipe_x(struct event_filler_arguments *args) | |
578 | /* | |
579 | * fds | |
580 | */ | |
581 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
582 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
583 | ||
584 | #ifdef CONFIG_COMPAT | |
585 | if (!args->compat) { | |
586 | @@ -2317,7 +2430,7 @@ int f_sys_eventfd_e(struct event_filler_arguments *args) | |
587 | /* | |
588 | * initval | |
589 | */ | |
590 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
591 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
592 | res = val_to_ring(args, val, 0, false, 0); | |
593 | if (unlikely(res != PPM_SUCCESS)) | |
594 | return res; | |
595 | @@ -2326,7 +2439,7 @@ int f_sys_eventfd_e(struct event_filler_arguments *args) | |
596 | * flags | |
597 | * XXX not implemented yet | |
598 | */ | |
599 | - /* syscall_get_arguments(current, args->regs, 1, 1, &val); */ | |
600 | + /* syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); */ | |
601 | val = 0; | |
602 | res = val_to_ring(args, val, 0, false, 0); | |
603 | if (unlikely(res != PPM_SUCCESS)) | |
604 | @@ -2344,7 +2457,7 @@ int f_sys_shutdown_e(struct event_filler_arguments *args) | |
605 | * fd | |
606 | */ | |
607 | if (!args->is_socketcall) | |
608 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
609 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
610 | else | |
611 | val = args->socketcall_args[0]; | |
912b01b0 | 612 | |
c12e2ab2 JR |
613 | @@ -2356,7 +2469,7 @@ int f_sys_shutdown_e(struct event_filler_arguments *args) |
614 | * how | |
615 | */ | |
616 | if (!args->is_socketcall) | |
617 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
618 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
619 | else | |
620 | val = args->socketcall_args[1]; | |
621 | ||
622 | @@ -2375,7 +2488,7 @@ int f_sys_futex_e(struct event_filler_arguments *args) | |
623 | /* | |
624 | * addr | |
625 | */ | |
626 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
627 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
628 | res = val_to_ring(args, val, 0, false, 0); | |
629 | if (unlikely(res != PPM_SUCCESS)) | |
630 | return res; | |
631 | @@ -2383,7 +2496,7 @@ int f_sys_futex_e(struct event_filler_arguments *args) | |
632 | /* | |
633 | * op | |
634 | */ | |
635 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
636 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
637 | res = val_to_ring(args, (unsigned long)futex_op_to_scap(val), 0, false, 0); | |
638 | if (unlikely(res != PPM_SUCCESS)) | |
639 | return res; | |
640 | @@ -2391,7 +2504,7 @@ int f_sys_futex_e(struct event_filler_arguments *args) | |
641 | /* | |
642 | * val | |
643 | */ | |
644 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
645 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
646 | res = val_to_ring(args, val, 0, false, 0); | |
647 | if (unlikely(res != PPM_SUCCESS)) | |
648 | return res; | |
649 | @@ -2407,7 +2520,7 @@ int f_sys_lseek_e(struct event_filler_arguments *args) | |
650 | /* | |
651 | * fd | |
652 | */ | |
653 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
654 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
655 | res = val_to_ring(args, val, 0, false, 0); | |
656 | if (unlikely(res != PPM_SUCCESS)) | |
657 | return res; | |
658 | @@ -2415,7 +2528,7 @@ int f_sys_lseek_e(struct event_filler_arguments *args) | |
659 | /* | |
660 | * offset | |
661 | */ | |
662 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
663 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
664 | res = val_to_ring(args, val, 0, false, 0); | |
665 | if (unlikely(res != PPM_SUCCESS)) | |
666 | return res; | |
667 | @@ -2423,7 +2536,7 @@ int f_sys_lseek_e(struct event_filler_arguments *args) | |
668 | /* | |
669 | * whence | |
670 | */ | |
671 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
672 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
673 | res = val_to_ring(args, lseek_whence_to_scap(val), 0, false, 0); | |
674 | if (unlikely(res != PPM_SUCCESS)) | |
675 | return res; | |
676 | @@ -2442,7 +2555,7 @@ int f_sys_llseek_e(struct event_filler_arguments *args) | |
677 | /* | |
678 | * fd | |
679 | */ | |
680 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
681 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
682 | res = val_to_ring(args, val, 0, false, 0); | |
683 | if (unlikely(res != PPM_SUCCESS)) | |
684 | return res; | |
685 | @@ -2451,8 +2564,8 @@ int f_sys_llseek_e(struct event_filler_arguments *args) | |
686 | * offset | |
687 | * We build it by combining the offset_high and offset_low system call arguments | |
688 | */ | |
689 | - syscall_get_arguments(current, args->regs, 1, 1, &oh); | |
690 | - syscall_get_arguments(current, args->regs, 2, 1, &ol); | |
691 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &oh); | |
692 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &ol); | |
693 | offset = (((uint64_t)oh) << 32) + ((uint64_t)ol); | |
694 | res = val_to_ring(args, offset, 0, false, 0); | |
695 | if (unlikely(res != PPM_SUCCESS)) | |
696 | @@ -2461,7 +2574,7 @@ int f_sys_llseek_e(struct event_filler_arguments *args) | |
697 | /* | |
698 | * whence | |
699 | */ | |
700 | - syscall_get_arguments(current, args->regs, 4, 1, &val); | |
701 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); | |
702 | res = val_to_ring(args, lseek_whence_to_scap(val), 0, false, 0); | |
703 | if (unlikely(res != PPM_SUCCESS)) | |
704 | return res; | |
705 | @@ -2485,7 +2598,7 @@ static int poll_parse_fds(struct event_filler_arguments *args, bool enter_event) | |
706 | * | |
707 | * Get the number of fds | |
708 | */ | |
709 | - syscall_get_arguments(current, args->regs, 1, 1, &nfds); | |
710 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &nfds); | |
711 | ||
712 | /* | |
713 | * Check if we have enough space to store both the fd list | |
714 | @@ -2495,7 +2608,7 @@ static int poll_parse_fds(struct event_filler_arguments *args, bool enter_event) | |
715 | return PPM_FAILURE_BUFFER_FULL; | |
716 | ||
717 | /* Get the fds pointer */ | |
718 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
719 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
720 | ||
721 | fds = (struct pollfd *)args->str_storage; | |
722 | #ifdef CONFIG_COMPAT | |
723 | @@ -2552,7 +2665,7 @@ int f_sys_poll_e(struct event_filler_arguments *args) | |
724 | /* | |
725 | * timeout | |
726 | */ | |
727 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
728 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
729 | res = val_to_ring(args, val, 0, false, 0); | |
730 | if (unlikely(res != PPM_SUCCESS)) | |
731 | return res; | |
732 | @@ -2607,7 +2720,7 @@ int f_sys_ppoll_e(struct event_filler_arguments *args) | |
733 | /* | |
734 | * timeout | |
735 | */ | |
736 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
737 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
738 | /* NULL timeout specified as 0xFFFFFF.... */ | |
739 | if (val == (unsigned long)NULL) | |
740 | res = val_to_ring(args, (uint64_t)(-1), 0, false, 0); | |
741 | @@ -2619,7 +2732,7 @@ int f_sys_ppoll_e(struct event_filler_arguments *args) | |
742 | /* | |
743 | * sigmask | |
744 | */ | |
745 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
746 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
747 | if (val != (unsigned long)NULL) | |
748 | if (0 != ppm_copy_from_user(&val, (void __user *)val, sizeof(val))) | |
749 | return PPM_FAILURE_INVALID_USER_MEMORY; | |
750 | @@ -2661,7 +2774,7 @@ int f_sys_mount_e(struct event_filler_arguments *args) | |
751 | * Fix mount flags in arg 3. | |
752 | * See http://lxr.free-electrons.com/source/fs/namespace.c?v=4.2#L2650 | |
753 | */ | |
754 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
755 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
756 | if ((val & PPM_MS_MGC_MSK) == PPM_MS_MGC_VAL) | |
757 | val &= ~PPM_MS_MGC_MSK; | |
758 | res = val_to_ring(args, val, 0, false, 0); | |
759 | @@ -2687,7 +2800,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) | |
760 | /* | |
761 | * dirfd | |
762 | */ | |
763 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
764 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
765 | ||
766 | if ((int)val == AT_FDCWD) | |
767 | val = PPM_AT_FDCWD; | |
768 | @@ -2699,7 +2812,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) | |
769 | /* | |
770 | * name | |
771 | */ | |
772 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
773 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
774 | res = val_to_ring(args, val, 0, true, 0); | |
775 | if (unlikely(res != PPM_SUCCESS)) | |
776 | return res; | |
777 | @@ -2708,7 +2821,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) | |
778 | * Flags | |
779 | * Note that we convert them into the ppm portable representation before pushing them to the ring | |
780 | */ | |
781 | - syscall_get_arguments(current, args->regs, 2, 1, &flags); | |
782 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &flags); | |
783 | res = val_to_ring(args, open_flags_to_scap(flags), 0, false, 0); | |
784 | if (unlikely(res != PPM_SUCCESS)) | |
785 | return res; | |
786 | @@ -2716,7 +2829,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) | |
787 | /* | |
788 | * mode | |
789 | */ | |
790 | - syscall_get_arguments(current, args->regs, 3, 1, &modes); | |
791 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &modes); | |
792 | res = val_to_ring(args, open_modes_to_scap(flags, modes), 0, false, 0); | |
793 | if (unlikely(res != PPM_SUCCESS)) | |
794 | return res; | |
795 | @@ -2738,7 +2858,7 @@ int f_sys_unlinkat_x(struct event_filler_arguments *args) | |
796 | /* | |
797 | * dirfd | |
798 | */ | |
799 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
800 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
801 | ||
802 | if ((int)val == AT_FDCWD) | |
803 | val = PPM_AT_FDCWD; | |
804 | @@ -2750,7 +2870,7 @@ int f_sys_unlinkat_x(struct event_filler_arguments *args) | |
805 | /* | |
806 | * name | |
807 | */ | |
808 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
809 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
810 | res = val_to_ring(args, val, 0, true, 0); | |
811 | if (unlikely(res != PPM_SUCCESS)) | |
812 | return res; | |
813 | @@ -2759,7 +2879,7 @@ int f_sys_unlinkat_x(struct event_filler_arguments *args) | |
814 | * flags | |
815 | * Note that we convert them into the ppm portable representation before pushing them to the ring | |
816 | */ | |
817 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
818 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
819 | res = val_to_ring(args, unlinkat_flags_to_scap(val), 0, false, 0); | |
820 | if (unlikely(res != PPM_SUCCESS)) | |
821 | return res; | |
822 | @@ -2782,7 +2902,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) | |
823 | /* | |
824 | * olddir | |
825 | */ | |
826 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
827 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
828 | ||
829 | if ((int)val == AT_FDCWD) | |
830 | val = PPM_AT_FDCWD; | |
831 | @@ -2794,7 +2914,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) | |
832 | /* | |
833 | * oldpath | |
834 | */ | |
835 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
836 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
837 | res = val_to_ring(args, val, 0, true, 0); | |
838 | if (unlikely(res != PPM_SUCCESS)) | |
839 | return res; | |
840 | @@ -2802,7 +2922,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) | |
841 | /* | |
842 | * newdir | |
843 | */ | |
844 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
845 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
846 | ||
847 | if ((int)val == AT_FDCWD) | |
848 | val = PPM_AT_FDCWD; | |
849 | @@ -2814,7 +2934,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) | |
850 | /* | |
851 | * newpath | |
852 | */ | |
853 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
854 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
855 | res = val_to_ring(args, val, 0, true, 0); | |
856 | if (unlikely(res != PPM_SUCCESS)) | |
857 | return res; | |
858 | @@ -2823,7 +2943,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) | |
859 | * Flags | |
860 | * Note that we convert them into the ppm portable representation before pushing them to the ring | |
861 | */ | |
862 | - syscall_get_arguments(current, args->regs, 4, 1, &flags); | |
863 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &flags); | |
864 | res = val_to_ring(args, linkat_flags_to_scap(flags), 0, false, 0); | |
865 | if (unlikely(res != PPM_SUCCESS)) | |
866 | return res; | |
867 | @@ -2844,7 +2964,7 @@ int f_sys_pread64_e(struct event_filler_arguments *args) | |
868 | /* | |
869 | * fd | |
870 | */ | |
871 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
872 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
873 | res = val_to_ring(args, val, 0, false, 0); | |
874 | if (unlikely(res != PPM_SUCCESS)) | |
875 | return res; | |
876 | @@ -2852,7 +2972,7 @@ int f_sys_pread64_e(struct event_filler_arguments *args) | |
877 | /* | |
878 | * size | |
879 | */ | |
880 | - syscall_get_arguments(current, args->regs, 2, 1, &size); | |
881 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &size); | |
882 | res = val_to_ring(args, size, 0, false, 0); | |
883 | if (unlikely(res != PPM_SUCCESS)) | |
884 | return res; | |
885 | @@ -2861,11 +2981,11 @@ int f_sys_pread64_e(struct event_filler_arguments *args) | |
886 | * pos | |
887 | */ | |
888 | #if defined CONFIG_X86 | |
889 | - syscall_get_arguments(current, args->regs, 3, 1, &pos0); | |
890 | - syscall_get_arguments(current, args->regs, 4, 1, &pos1); | |
891 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); | |
892 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); | |
893 | #elif defined CONFIG_ARM && CONFIG_AEABI | |
894 | - syscall_get_arguments(current, args->regs, 4, 1, &pos0); | |
895 | - syscall_get_arguments(current, args->regs, 5, 1, &pos1); | |
896 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos0); | |
897 | + syscall_get_arguments_deprecated(current, args->regs, 5, 1, &pos1); | |
898 | #else | |
899 | #error This architecture/abi not yet supported | |
900 | #endif | |
901 | @@ -2895,7 +3015,7 @@ int f_sys_pwrite64_e(struct event_filler_arguments *args) | |
902 | /* | |
903 | * fd | |
904 | */ | |
905 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
906 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
907 | res = val_to_ring(args, val, 0, false, 0); | |
908 | if (unlikely(res != PPM_SUCCESS)) | |
909 | return res; | |
910 | @@ -2903,7 +3023,7 @@ int f_sys_pwrite64_e(struct event_filler_arguments *args) | |
911 | /* | |
912 | * size | |
913 | */ | |
914 | - syscall_get_arguments(current, args->regs, 2, 1, &size); | |
915 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &size); | |
916 | res = val_to_ring(args, size, 0, false, 0); | |
917 | if (unlikely(res != PPM_SUCCESS)) | |
918 | return res; | |
919 | @@ -2914,17 +3034,17 @@ int f_sys_pwrite64_e(struct event_filler_arguments *args) | |
920 | * separate registers that we need to merge. | |
921 | */ | |
922 | #ifdef _64BIT_ARGS_SINGLE_REGISTER | |
923 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
924 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
925 | res = val_to_ring(args, val, 0, false, 0); | |
926 | if (unlikely(res != PPM_SUCCESS)) | |
927 | return res; | |
928 | #else | |
929 | #if defined CONFIG_X86 | |
930 | - syscall_get_arguments(current, args->regs, 3, 1, &pos0); | |
931 | - syscall_get_arguments(current, args->regs, 4, 1, &pos1); | |
932 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); | |
933 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); | |
934 | #elif defined CONFIG_ARM && CONFIG_AEABI | |
935 | - syscall_get_arguments(current, args->regs, 4, 1, &pos0); | |
936 | - syscall_get_arguments(current, args->regs, 5, 1, &pos1); | |
937 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos0); | |
938 | + syscall_get_arguments_deprecated(current, args->regs, 5, 1, &pos1); | |
939 | #else | |
940 | #error This architecture/abi not yet supported | |
941 | #endif | |
942 | @@ -2962,8 +3082,8 @@ int f_sys_readv_preadv_x(struct event_filler_arguments *args) | |
943 | /* | |
944 | * data and size | |
945 | */ | |
946 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
947 | - syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); | |
948 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
949 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); | |
950 | ||
951 | #ifdef CONFIG_COMPAT | |
952 | if (unlikely(args->compat)) { | |
953 | @@ -2994,7 +3114,7 @@ int f_sys_writev_e(struct event_filler_arguments *args) | |
954 | /* | |
955 | * fd | |
956 | */ | |
957 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
958 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
959 | res = val_to_ring(args, val, 0, false, 0); | |
960 | if (unlikely(res != PPM_SUCCESS)) | |
961 | return res; | |
962 | @@ -3002,12 +3122,12 @@ int f_sys_writev_e(struct event_filler_arguments *args) | |
963 | /* | |
964 | * size | |
965 | */ | |
966 | - syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); | |
967 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); | |
968 | ||
969 | /* | |
970 | * Copy the buffer | |
971 | */ | |
972 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
973 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
974 | #ifdef CONFIG_COMPAT | |
975 | if (unlikely(args->compat)) { | |
976 | compat_iov = (const struct compat_iovec __user *)compat_ptr(val); | |
977 | @@ -3050,13 +3170,13 @@ int f_sys_writev_pwritev_x(struct event_filler_arguments *args) | |
978 | /* | |
979 | * data and size | |
980 | */ | |
981 | - syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); | |
982 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); | |
983 | ||
984 | ||
985 | /* | |
986 | * Copy the buffer | |
987 | */ | |
988 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
989 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
990 | #ifdef CONFIG_COMPAT | |
991 | if (unlikely(args->compat)) { | |
992 | compat_iov = (const struct compat_iovec __user *)compat_ptr(val); | |
993 | @@ -3085,7 +3205,7 @@ int f_sys_preadv64_e(struct event_filler_arguments *args) | |
994 | /* | |
995 | * fd | |
996 | */ | |
997 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
998 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
999 | res = val_to_ring(args, val, 0, false, 0); | |
1000 | if (unlikely(res != PPM_SUCCESS)) | |
1001 | return res; | |
1002 | @@ -3100,8 +3220,8 @@ int f_sys_preadv64_e(struct event_filler_arguments *args) | |
1003 | * requirements apply here. For an overly-detailed discussion about | |
1004 | * this, see https://lwn.net/Articles/311630/ | |
1005 | */ | |
1006 | - syscall_get_arguments(current, args->regs, 3, 1, &pos0); | |
1007 | - syscall_get_arguments(current, args->regs, 4, 1, &pos1); | |
1008 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); | |
1009 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); | |
1010 | ||
1011 | pos64 = merge_64(pos1, pos0); | |
1012 | ||
1013 | @@ -3131,7 +3251,7 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) | |
1014 | /* | |
1015 | * fd | |
1016 | */ | |
1017 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1018 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1019 | res = val_to_ring(args, val, 0, false, 0); | |
1020 | if (unlikely(res != PPM_SUCCESS)) | |
1021 | return res; | |
1022 | @@ -3139,12 +3259,12 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) | |
1023 | /* | |
1024 | * size | |
1025 | */ | |
1026 | - syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); | |
1027 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); | |
1028 | ||
1029 | /* | |
1030 | * Copy the buffer | |
1031 | */ | |
1032 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1033 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1034 | #ifdef CONFIG_COMPAT | |
1035 | if (unlikely(args->compat)) { | |
1036 | compat_iov = (const struct compat_iovec __user *)compat_ptr(val); | |
1037 | @@ -3167,7 +3287,7 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) | |
1038 | * separate registers that we need to merge. | |
1039 | */ | |
1040 | #ifdef _64BIT_ARGS_SINGLE_REGISTER | |
1041 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1042 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1043 | res = val_to_ring(args, val, 0, false, 0); | |
1044 | if (unlikely(res != PPM_SUCCESS)) | |
1045 | return res; | |
1046 | @@ -3178,8 +3298,8 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) | |
1047 | * requirements apply here. For an overly-detailed discussion about | |
1048 | * this, see https://lwn.net/Articles/311630/ | |
1049 | */ | |
1050 | - syscall_get_arguments(current, args->regs, 3, 1, &pos0); | |
1051 | - syscall_get_arguments(current, args->regs, 4, 1, &pos1); | |
1052 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); | |
1053 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); | |
1054 | ||
1055 | pos64 = merge_64(pos1, pos0); | |
1056 | ||
1057 | @@ -3196,7 +3316,7 @@ int f_sys_nanosleep_e(struct event_filler_arguments *args) | |
1058 | unsigned long val; | |
1059 | int res; | |
1060 | ||
1061 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1062 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1063 | res = timespec_parse(args, val); | |
1064 | if (unlikely(res != PPM_SUCCESS)) | |
1065 | return res; | |
1066 | @@ -3213,7 +3333,7 @@ int f_sys_getrlimit_setrlimit_e(struct event_filler_arguments *args) | |
1067 | /* | |
1068 | * resource | |
1069 | */ | |
1070 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1071 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1072 | ||
1073 | ppm_resource = rlimit_resource_to_scap(val); | |
1074 | ||
1075 | @@ -3248,7 +3368,7 @@ int f_sys_getrlimit_setrlrimit_x(struct event_filler_arguments *args) | |
1076 | * Copy the user structure and extract cur and max | |
1077 | */ | |
1078 | if (retval >= 0 || args->event_type == PPME_SYSCALL_SETRLIMIT_X) { | |
1079 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1080 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1081 | ||
1082 | #ifdef CONFIG_COMPAT | |
1083 | if (!args->compat) { | |
1084 | @@ -3296,7 +3416,7 @@ int f_sys_prlimit_e(struct event_filler_arguments *args) | |
1085 | /* | |
1086 | * pid | |
1087 | */ | |
1088 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1089 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1090 | ||
1091 | res = val_to_ring(args, val, 0, false, 0); | |
1092 | if (unlikely(res != PPM_SUCCESS)) | |
1093 | @@ -3305,7 +3425,7 @@ int f_sys_prlimit_e(struct event_filler_arguments *args) | |
1094 | /* | |
1095 | * resource | |
1096 | */ | |
1097 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1098 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1099 | ||
1100 | ppm_resource = rlimit_resource_to_scap(val); | |
1101 | ||
1102 | @@ -3342,7 +3462,7 @@ int f_sys_prlimit_x(struct event_filler_arguments *args) | |
1103 | * Copy the user structure and extract cur and max | |
1104 | */ | |
1105 | if (retval >= 0) { | |
1106 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1107 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1108 | ||
1109 | #ifdef CONFIG_COMPAT | |
1110 | if (!args->compat) { | |
1111 | @@ -3370,7 +3490,7 @@ int f_sys_prlimit_x(struct event_filler_arguments *args) | |
1112 | newmax = -1; | |
1113 | } | |
1114 | ||
1115 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1116 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1117 | ||
1118 | #ifdef CONFIG_COMPAT | |
1119 | if (!args->compat) { | |
1120 | @@ -3525,7 +3645,7 @@ int f_sys_fcntl_e(struct event_filler_arguments *args) | |
1121 | /* | |
1122 | * fd | |
1123 | */ | |
1124 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1125 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1126 | res = val_to_ring(args, val, 0, false, 0); | |
1127 | if (unlikely(res != PPM_SUCCESS)) | |
1128 | return res; | |
1129 | @@ -3533,7 +3653,7 @@ int f_sys_fcntl_e(struct event_filler_arguments *args) | |
1130 | /* | |
1131 | * cmd | |
1132 | */ | |
1133 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1134 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1135 | res = val_to_ring(args, fcntl_cmd_to_scap(val), 0, false, 0); | |
1136 | if (unlikely(res != PPM_SUCCESS)) | |
1137 | return res; | |
1138 | @@ -3547,7 +3667,7 @@ static inline int parse_ptrace_addr(struct event_filler_arguments *args, u16 req | |
1139 | uint64_t dst; | |
1140 | u8 idx; | |
1141 | ||
1142 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1143 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1144 | switch (request) { | |
1145 | default: | |
1146 | idx = PPM_PTRACE_IDX_UINT64; | |
1147 | @@ -3564,7 +3684,7 @@ static inline int parse_ptrace_data(struct event_filler_arguments *args, u16 req | |
1148 | uint64_t dst; | |
1149 | u8 idx; | |
1150 | ||
1151 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1152 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1153 | switch (request) { | |
1154 | case PPM_PTRACE_PEEKTEXT: | |
1155 | case PPM_PTRACE_PEEKDATA: | |
1156 | @@ -3612,7 +3732,7 @@ int f_sys_ptrace_e(struct event_filler_arguments *args) | |
1157 | /* | |
1158 | * request | |
1159 | */ | |
1160 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1161 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1162 | res = val_to_ring(args, ptrace_requests_to_scap(val), 0, false, 0); | |
1163 | if (unlikely(res != PPM_SUCCESS)) | |
1164 | return res; | |
1165 | @@ -3620,7 +3740,7 @@ int f_sys_ptrace_e(struct event_filler_arguments *args) | |
1166 | /* | |
1167 | * pid | |
1168 | */ | |
1169 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1170 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1171 | res = val_to_ring(args, val, 0, false, 0); | |
1172 | if (unlikely(res != PPM_SUCCESS)) | |
1173 | return res; | |
1174 | @@ -3658,7 +3778,7 @@ int f_sys_ptrace_x(struct event_filler_arguments *args) | |
1175 | /* | |
1176 | * request | |
1177 | */ | |
1178 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1179 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1180 | request = ptrace_requests_to_scap(val); | |
1181 | ||
1182 | res = parse_ptrace_addr(args, request); | |
1183 | @@ -3724,7 +3844,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) | |
1184 | /* | |
1185 | * addr | |
1186 | */ | |
1187 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1188 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1189 | res = val_to_ring(args, val, 0, false, 0); | |
1190 | if (unlikely(res != PPM_SUCCESS)) | |
1191 | return res; | |
1192 | @@ -3732,7 +3852,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) | |
1193 | /* | |
1194 | * length | |
1195 | */ | |
1196 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1197 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1198 | res = val_to_ring(args, val, 0, false, 0); | |
1199 | if (unlikely(res != PPM_SUCCESS)) | |
1200 | return res; | |
1201 | @@ -3740,7 +3860,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) | |
1202 | /* | |
1203 | * prot | |
1204 | */ | |
1205 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1206 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1207 | res = val_to_ring(args, prot_flags_to_scap(val), 0, false, 0); | |
1208 | if (unlikely(res != PPM_SUCCESS)) | |
1209 | return res; | |
1210 | @@ -3748,7 +3868,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) | |
1211 | /* | |
1212 | * flags | |
1213 | */ | |
1214 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1215 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1216 | res = val_to_ring(args, mmap_flags_to_scap(val), 0, false, 0); | |
1217 | if (unlikely(res != PPM_SUCCESS)) | |
1218 | return res; | |
1219 | @@ -3756,7 +3876,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) | |
1220 | /* | |
1221 | * fd | |
1222 | */ | |
1223 | - syscall_get_arguments(current, args->regs, 4, 1, &val); | |
1224 | + syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); | |
1225 | res = val_to_ring(args, val, 0, false, 0); | |
1226 | if (unlikely(res != PPM_SUCCESS)) | |
1227 | return res; | |
1228 | @@ -3764,7 +3884,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) | |
1229 | /* | |
1230 | * offset/pgoffset | |
1231 | */ | |
1232 | - syscall_get_arguments(current, args->regs, 5, 1, &val); | |
1233 | + syscall_get_arguments_deprecated(current, args->regs, 5, 1, &val); | |
1234 | res = val_to_ring(args, val, 0, false, 0); | |
1235 | if (unlikely(res != PPM_SUCCESS)) | |
1236 | return res; | |
1237 | @@ -3786,7 +3906,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) | |
1238 | /* | |
1239 | * olddirfd | |
1240 | */ | |
1241 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1242 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1243 | ||
1244 | if ((int)val == AT_FDCWD) | |
1245 | val = PPM_AT_FDCWD; | |
1246 | @@ -3798,7 +3918,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) | |
1247 | /* | |
1248 | * oldpath | |
1249 | */ | |
1250 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1251 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1252 | res = val_to_ring(args, val, 0, true, 0); | |
1253 | if (unlikely(res != PPM_SUCCESS)) | |
1254 | return res; | |
1255 | @@ -3806,7 +3926,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) | |
1256 | /* | |
1257 | * newdirfd | |
1258 | */ | |
1259 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1260 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1261 | ||
1262 | if ((int)val == AT_FDCWD) | |
1263 | val = PPM_AT_FDCWD; | |
1264 | @@ -3818,7 +3938,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) | |
1265 | /* | |
1266 | * newpath | |
1267 | */ | |
1268 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1269 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1270 | res = val_to_ring(args, val, 0, true, 0); | |
1271 | if (unlikely(res != PPM_SUCCESS)) | |
1272 | return res; | |
1273 | @@ -3840,7 +3960,7 @@ int f_sys_symlinkat_x(struct event_filler_arguments *args) | |
1274 | /* | |
1275 | * oldpath | |
1276 | */ | |
1277 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1278 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1279 | res = val_to_ring(args, val, 0, true, 0); | |
1280 | if (unlikely(res != PPM_SUCCESS)) | |
1281 | return res; | |
1282 | @@ -3848,7 +3968,7 @@ int f_sys_symlinkat_x(struct event_filler_arguments *args) | |
1283 | /* | |
1284 | * newdirfd | |
1285 | */ | |
1286 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1287 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1288 | ||
1289 | if ((int)val == AT_FDCWD) | |
1290 | val = PPM_AT_FDCWD; | |
1291 | @@ -3860,7 +3980,7 @@ int f_sys_symlinkat_x(struct event_filler_arguments *args) | |
1292 | /* | |
1293 | * newpath | |
1294 | */ | |
1295 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1296 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1297 | res = val_to_ring(args, val, 0, true, 0); | |
1298 | if (unlikely(res != PPM_SUCCESS)) | |
1299 | return res; | |
1300 | @@ -3896,7 +4016,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) | |
1301 | /* | |
1302 | * out_fd | |
1303 | */ | |
1304 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1305 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1306 | res = val_to_ring(args, val, 0, true, 0); | |
1307 | if (unlikely(res != PPM_SUCCESS)) | |
1308 | return res; | |
1309 | @@ -3904,7 +4024,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) | |
1310 | /* | |
1311 | * in_fd | |
1312 | */ | |
1313 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1314 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1315 | res = val_to_ring(args, val, 0, true, 0); | |
1316 | if (unlikely(res != PPM_SUCCESS)) | |
1317 | return res; | |
1318 | @@ -3912,7 +4032,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) | |
1319 | /* | |
1320 | * offset | |
1321 | */ | |
1322 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1323 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1324 | ||
1325 | if (val != 0) { | |
1326 | #ifdef CONFIG_COMPAT | |
1327 | @@ -3937,7 +4057,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) | |
1328 | /* | |
1329 | * size | |
1330 | */ | |
1331 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1332 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1333 | res = val_to_ring(args, val, 0, true, 0); | |
1334 | if (unlikely(res != PPM_SUCCESS)) | |
1335 | return res; | |
1336 | @@ -3963,7 +4083,7 @@ int f_sys_sendfile_x(struct event_filler_arguments *args) | |
1337 | /* | |
1338 | * offset | |
1339 | */ | |
1340 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1341 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1342 | ||
1343 | if (val != 0) { | |
1344 | #ifdef CONFIG_COMPAT | |
1345 | @@ -3999,7 +4119,7 @@ int f_sys_quotactl_e(struct event_filler_arguments *args) | |
1346 | /* | |
1347 | * extract cmd | |
1348 | */ | |
1349 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1350 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1351 | cmd = quotactl_cmd_to_scap(val); | |
1352 | res = val_to_ring(args, cmd, 0, false, 0); | |
1353 | if (unlikely(res != PPM_SUCCESS)) | |
1354 | @@ -4016,7 +4136,7 @@ int f_sys_quotactl_e(struct event_filler_arguments *args) | |
1355 | * extract id | |
1356 | */ | |
1357 | id = 0; | |
1358 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1359 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1360 | if ((cmd == PPM_Q_GETQUOTA) || | |
1361 | (cmd == PPM_Q_SETQUOTA) || | |
1362 | (cmd == PPM_Q_XGETQUOTA) || | |
1363 | @@ -4059,7 +4179,7 @@ int f_sys_quotactl_x(struct event_filler_arguments *args) | |
1364 | /* | |
1365 | * extract cmd | |
1366 | */ | |
1367 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1368 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1369 | cmd = quotactl_cmd_to_scap(val); | |
1370 | ||
1371 | /* | |
1372 | @@ -4073,7 +4193,7 @@ int f_sys_quotactl_x(struct event_filler_arguments *args) | |
1373 | /* | |
1374 | * Add special | |
1375 | */ | |
1376 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1377 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1378 | res = val_to_ring(args, val, 0, true, 0); | |
1379 | if (unlikely(res != PPM_SUCCESS)) | |
1380 | return res; | |
1381 | @@ -4081,7 +4201,7 @@ int f_sys_quotactl_x(struct event_filler_arguments *args) | |
1382 | /* | |
1383 | * get addr | |
1384 | */ | |
1385 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1386 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1387 | ||
1388 | /* | |
1389 | * get quotafilepath only for QUOTAON | |
1390 | @@ -4259,7 +4379,7 @@ int f_sys_getresuid_and_gid_x(struct event_filler_arguments *args) | |
1391 | /* | |
1392 | * ruid | |
1393 | */ | |
1394 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1395 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1396 | #ifdef CONFIG_COMPAT | |
1397 | if (!args->compat) { | |
1398 | #endif | |
1399 | @@ -4279,7 +4399,7 @@ int f_sys_getresuid_and_gid_x(struct event_filler_arguments *args) | |
1400 | /* | |
1401 | * euid | |
1402 | */ | |
1403 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1404 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1405 | len = ppm_copy_from_user(&uid, (void *)val, sizeof(uint32_t)); | |
1406 | if (unlikely(len != 0)) | |
1407 | return PPM_FAILURE_INVALID_USER_MEMORY; | |
1408 | @@ -4291,7 +4411,7 @@ int f_sys_getresuid_and_gid_x(struct event_filler_arguments *args) | |
1409 | /* | |
1410 | * suid | |
1411 | */ | |
1412 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1413 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1414 | len = ppm_copy_from_user(&uid, (void *)val, sizeof(uint32_t)); | |
1415 | if (unlikely(len != 0)) | |
1416 | return PPM_FAILURE_INVALID_USER_MEMORY; | |
1417 | @@ -4309,12 +4429,12 @@ int f_sys_flock_e(struct event_filler_arguments *args) | |
1418 | int res; | |
1419 | u32 flags; | |
1420 | ||
1421 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1422 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1423 | res = val_to_ring(args, val, 0, false, 0); | |
1424 | if (unlikely(res != PPM_SUCCESS)) | |
1425 | return res; | |
1426 | ||
1427 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1428 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1429 | flags = flock_flags_to_scap(val); | |
1430 | res = val_to_ring(args, flags, 0, false, 0); | |
1431 | if (unlikely(res != PPM_SUCCESS)) | |
1432 | @@ -4332,7 +4452,7 @@ int f_sys_setns_e(struct event_filler_arguments *args) | |
1433 | /* | |
1434 | * parse fd | |
1435 | */ | |
1436 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1437 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1438 | res = val_to_ring(args, val, 0, true, 0); | |
1439 | if (unlikely(res != PPM_SUCCESS)) | |
1440 | return res; | |
1441 | @@ -4340,7 +4460,7 @@ int f_sys_setns_e(struct event_filler_arguments *args) | |
1442 | /* | |
1443 | * get type, parse as clone flags as it's a subset of it | |
1444 | */ | |
1445 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1446 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1447 | flags = clone_flags_to_scap(val); | |
1448 | res = val_to_ring(args, flags, 0, true, 0); | |
1449 | if (unlikely(res != PPM_SUCCESS)) | |
1450 | @@ -4358,7 +4478,7 @@ int f_sys_unshare_e(struct event_filler_arguments *args) | |
1451 | /* | |
1452 | * get type, parse as clone flags as it's a subset of it | |
1453 | */ | |
1454 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1455 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1456 | flags = clone_flags_to_scap(val); | |
1457 | res = val_to_ring(args, flags, 0, true, 0); | |
1458 | if (unlikely(res != PPM_SUCCESS)) | |
1459 | @@ -4459,7 +4579,7 @@ int f_sys_semop_x(struct event_filler_arguments *args) | |
1460 | * actually this could be read in the enter function but | |
1461 | * we also need to know the value to access the sembuf structs | |
1462 | */ | |
1463 | - syscall_get_arguments(current, args->regs, 2, 1, &nsops); | |
1464 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &nsops); | |
1465 | res = val_to_ring(args, nsops, 0, true, 0); | |
1466 | if (unlikely(res != PPM_SUCCESS)) | |
1467 | return res; | |
1468 | @@ -4467,7 +4587,7 @@ int f_sys_semop_x(struct event_filler_arguments *args) | |
1469 | /* | |
1470 | * sembuf | |
1471 | */ | |
1472 | - syscall_get_arguments(current, args->regs, 1, 1, (unsigned long *) &ptr); | |
1473 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, (unsigned long *) &ptr); | |
1474 | ||
1475 | if (nsops && ptr) { | |
1476 | /* max length of sembuf array in g_event_info = 2 */ | |
1477 | @@ -4506,7 +4626,7 @@ int f_sys_semget_e(struct event_filler_arguments *args) | |
1478 | /* | |
1479 | * key | |
1480 | */ | |
1481 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1482 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1483 | res = val_to_ring(args, val, 0, true, 0); | |
1484 | if (unlikely(res != PPM_SUCCESS)) | |
1485 | return res; | |
1486 | @@ -4514,7 +4634,7 @@ int f_sys_semget_e(struct event_filler_arguments *args) | |
1487 | /* | |
1488 | * nsems | |
1489 | */ | |
1490 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1491 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1492 | res = val_to_ring(args, val, 0, true, 0); | |
1493 | if (unlikely(res != PPM_SUCCESS)) | |
1494 | return res; | |
1495 | @@ -4522,7 +4642,7 @@ int f_sys_semget_e(struct event_filler_arguments *args) | |
1496 | /* | |
1497 | * semflg | |
1498 | */ | |
1499 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1500 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1501 | res = val_to_ring(args, semget_flags_to_scap(val), 0, true, 0); | |
1502 | if (unlikely(res != PPM_SUCCESS)) | |
1503 | return res; | |
1504 | @@ -4538,7 +4658,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) | |
1505 | /* | |
1506 | * semid | |
1507 | */ | |
1508 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1509 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1510 | res = val_to_ring(args, val, 0, true, 0); | |
1511 | if (unlikely(res != PPM_SUCCESS)) | |
1512 | return res; | |
1513 | @@ -4546,7 +4666,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) | |
1514 | /* | |
1515 | * semnum | |
1516 | */ | |
1517 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1518 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1519 | res = val_to_ring(args, val, 0, true, 0); | |
1520 | if (unlikely(res != PPM_SUCCESS)) | |
1521 | return res; | |
1522 | @@ -4554,7 +4674,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) | |
1523 | /* | |
1524 | * cmd | |
1525 | */ | |
1526 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1527 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1528 | res = val_to_ring(args, semctl_cmd_to_scap(val), 0, true, 0); | |
1529 | if (unlikely(res != PPM_SUCCESS)) | |
1530 | return res; | |
1531 | @@ -4563,7 +4683,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) | |
1532 | * optional argument semun/val | |
1533 | */ | |
1534 | if (val == SETVAL) | |
1535 | - syscall_get_arguments(current, args->regs, 3, 1, &val); | |
1536 | + syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); | |
1537 | else | |
1538 | val = 0; | |
1539 | res = val_to_ring(args, val, 0, true, 0); | |
1540 | @@ -4581,7 +4701,7 @@ int f_sys_access_e(struct event_filler_arguments *args) | |
1541 | /* | |
1542 | * mode | |
1543 | */ | |
1544 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1545 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1546 | res = val_to_ring(args, access_flags_to_scap(val), 0, true, 0); | |
1547 | if (unlikely(res != PPM_SUCCESS)) | |
1548 | return res; | |
1549 | @@ -4609,7 +4729,7 @@ int f_sys_bpf_x(struct event_filler_arguments *args) | |
1550 | /* | |
1551 | * fd, depending on cmd | |
1552 | */ | |
1553 | - syscall_get_arguments(current, args->regs, 0, 1, &cmd); | |
1554 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &cmd); | |
1555 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) | |
1556 | if(cmd == BPF_MAP_CREATE || cmd == BPF_PROG_LOAD) | |
1557 | #else | |
1558 | @@ -4642,7 +4762,7 @@ int f_sys_mkdirat_x(struct event_filler_arguments *args) | |
1559 | /* | |
1560 | * dirfd | |
1561 | */ | |
1562 | - syscall_get_arguments(current, args->regs, 0, 1, &val); | |
1563 | + syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); | |
1564 | ||
1565 | if ((int)val == AT_FDCWD) | |
1566 | val = PPM_AT_FDCWD; | |
1567 | @@ -4654,7 +4774,7 @@ int f_sys_mkdirat_x(struct event_filler_arguments *args) | |
1568 | /* | |
1569 | * path | |
1570 | */ | |
1571 | - syscall_get_arguments(current, args->regs, 1, 1, &val); | |
1572 | + syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); | |
1573 | res = val_to_ring(args, val, 0, true, 0); | |
1574 | if (unlikely(res != PPM_SUCCESS)) | |
1575 | return res; | |
1576 | @@ -4662,7 +4782,7 @@ int f_sys_mkdirat_x(struct event_filler_arguments *args) | |
1577 | /* | |
1578 | * mode | |
1579 | */ | |
1580 | - syscall_get_arguments(current, args->regs, 2, 1, &val); | |
1581 | + syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); | |
1582 | res = val_to_ring(args, val, 0, false, 0); | |
1583 | if (unlikely(res != PPM_SUCCESS)) | |
1584 | return res; | |
1585 | diff --git a/driver/ppm_flag_helpers.h b/driver/ppm_flag_helpers.h | |
1586 | index 6e9ac21c..1c3b9251 100644 | |
1587 | --- a/driver/ppm_flag_helpers.h | |
1588 | +++ b/driver/ppm_flag_helpers.h | |
1589 | @@ -9,8 +9,7 @@ or GPL2.txt for full copies of the license. | |
1590 | ||
1591 | #ifndef PPM_FLAG_HELPERS_H_ | |
1592 | #define PPM_FLAG_HELPERS_H_ | |
1593 | - | |
1594 | -#include <asm/mman.h> | |
1595 | +#include <linux/mman.h> | |
1596 | #include <linux/futex.h> | |
1597 | #include <linux/ptrace.h> | |
912b01b0 | 1598 |