]>
Commit | Line | Data |
---|---|---|
f90d9891 JB |
1 | diff -Nur strace-4.4.orig/linux/alpha/syscallent.h strace-4.4/linux/alpha/syscallent.h |
2 | --- strace-4.4.orig/linux/alpha/syscallent.h Mon May 1 03:54:00 2000 | |
3 | +++ strace-4.4/linux/alpha/syscallent.h Fri Oct 19 15:28:02 2001 | |
de4e0a62 | 4 | @@ -103,7 +103,7 @@ |
ed799d14 AM |
5 | { 5, 0, printargs, "osf_old_vadvise" }, /* 72, not implemented */ |
6 | { 2, 0, sys_munmap, "munmap" }, /* 73 */ | |
7 | { 3, 0, sys_mprotect, "mprotect" }, /* 74 */ | |
8 | - { 0, 0, sys_madvise, "madvise" }, /* 75 */ | |
9 | + { 3, 0, sys_madvise, "madvise" }, /* 75 */ | |
10 | { 0, 0, sys_vhangup, "vhangup" }, /* 76 */ | |
11 | { 5, 0, printargs, "osf_kmodcall" }, /* 77, not implemented */ | |
12 | { 5, 0, printargs, "osf_mincore" }, /* 78, not implemented */ | |
4add37e9 | 13 | @@ -399,12 +399,12 @@ |
ed799d14 AM |
14 | { 2, 0, sys_capget, "capget" }, /* 368 */ |
15 | { 2, 0, sys_capset, "capset" }, /* 369 */ | |
16 | { 4, TF, sys_sendfile, "sendfile" }, /* 370 */ | |
17 | - { 3, 0, printargs, "setresgid" }, /* 371 */ | |
18 | - { 3, 0, printargs, "getresgid" }, /* 372 */ | |
19 | - { 4, 0, printargs, "dipc" }, /* 373, not implemented */ | |
20 | - { 2, TF, printargs, "pivot_root" }, /* 374 */ | |
21 | - { 3, 0, printargs, "mincore" }, /* 375 */ | |
22 | - { 4, 0, printargs, "pciconfig_iobase" }, /* 376 */ | |
23 | + { 3, 0, sys_setresgid, "setresgid" }, /* 371 */ | |
24 | + { 3, 0, sys_getresgid, "getresgid" }, /* 372 */ | |
25 | + { 5, 0, printargs, "dipc" }, /* 373, not implemented */ | |
fcc8ff10 | 26 | + { 2, TF, sys_pivotroot, "pivot_root" }, /* 374 */ |
ed799d14 AM |
27 | + { 3, 0, sys_mincore, "mincore" }, /* 375 */ |
28 | + { 3, 0, printargs, "pciconfig_iobase" }, /* 376 */ | |
4add37e9 | 29 | { 4, 0, sys_getdents64, "getdents64" }, /* 377 */ |
30 | { 0, 0, printargs, "gettid" }, /* 378 */ | |
31 | { 4, 0, sys_readahead, "readahead" }, /* 379 */ | |
f90d9891 JB |
32 | diff -Nur strace-4.4.orig/linux/dummy.h strace-4.4/linux/dummy.h |
33 | --- strace-4.4.orig/linux/dummy.h Mon May 1 03:54:00 2000 | |
34 | +++ strace-4.4/linux/dummy.h Fri Oct 19 15:28:02 2001 | |
ed799d14 AM |
35 | @@ -78,6 +78,12 @@ |
36 | #define sys_vhangup printargs | |
37 | #define sys_idle printargs | |
38 | #define sys_getpgid printargs | |
39 | +#define sys_getuid32 printargs | |
40 | +#define sys_getgid32 printargs | |
41 | +#define sys_geteuid32 printargs | |
42 | +#define sys_getegid32 printargs | |
43 | +#define sys_setfsuid32 printargs | |
44 | +#define sys_setfsgid32 printargs | |
45 | #define sys_munlockall printargs | |
46 | ||
47 | /* subcall entry points */ | |
f90d9891 JB |
48 | diff -Nur strace-4.4.orig/linux/sparc/syscall.h strace-4.4/linux/sparc/syscall.h |
49 | --- strace-4.4.orig/linux/sparc/syscall.h Fri Oct 19 15:27:34 2001 | |
50 | +++ strace-4.4/linux/sparc/syscall.h Fri Oct 19 15:28:02 2001 | |
ed799d14 | 51 | @@ -42,6 +42,13 @@ |
de4e0a62 JR |
52 | int sys_setsid(), sys_setpgid(); |
53 | int sys_uname(), sys_sysinfo(); | |
54 | ||
55 | +/* 32bit uids */ | |
56 | +int sys_getuid32(), sys_getgid32(), sys_geteuid32(), sys_getegid32(); | |
57 | +int sys_setreuid32(), sys_setregid32(), sys_getgroups32(), sys_setgroups32(); | |
fcc8ff10 JB |
58 | +int sys_setresuid32(), sys_getresuid32(), sys_setresgid32(); |
59 | +int sys_getresgid32(), sys_setuid32(), sys_setgid32(); | |
de4e0a62 JR |
60 | +int sys_setfsuid32(), sys_setfsgid32(); |
61 | + | |
62 | /* 1.2 memory management */ | |
63 | int sys_brk(),sys_sbrk(),sys_sstk(); | |
64 | int sys_getpagesize(),sys_mmap(),sys_mctl(),sys_munmap(),sys_mprotect(),sys_mincore(), sys_mremap(); | |
8756befb | 65 | --- strace-4.4.94/linux/sparc/syscallent.h.orig Tue Jan 14 23:29:43 2003 |
66 | +++ strace-4.4.94/linux/sparc/syscallent.h Fri Apr 4 09:03:24 2003 | |
de4e0a62 JR |
67 | @@ -29,11 +29,11 @@ |
68 | { 2, TS, sys_sigaltstack,"sigaltstack" }, /* 28 */ | |
69 | { 0, TS, sys_pause, "pause" }, /* 29 */ | |
70 | { 2, TF, sys_utime, "utime" }, /* 30 */ | |
71 | - { 2, 0, sys_stty, "stty" }, /* 31 */ | |
72 | - { 2, 0, sys_gtty, "gtty" }, /* 32 */ | |
5426181d | 73 | + { 3, TF, printargs, "lchown32" }, /* 31 */ |
de4e0a62 JR |
74 | + { 3, 0, sys_fchown, "fchown32" }, /* 32 */ |
75 | { 2, TF, sys_access, "access" }, /* 33 */ | |
76 | { 1, 0, sys_nice, "nice" }, /* 34 */ | |
77 | - { 1, 0, sys_ftime, "ftime" }, /* 35 */ | |
78 | + { 3, TF, sys_chown, "chown32" }, /* 35 */ | |
79 | { 0, 0, sys_sync, "sync" }, /* 36 */ | |
80 | { 2, TS, sys_kill, "kill" }, /* 37 */ | |
81 | { 2, TF, sys_stat, "stat" }, /* 38 */ | |
82 | @@ -42,7 +42,7 @@ | |
83 | { 2, 0, sys_dup, "dup" }, /* 41 */ | |
84 | { 0, 0, sys_pipe, "pipe" }, /* 42 */ | |
85 | { 1, 0, sys_times, "times" }, /* 43 */ | |
86 | - { 4, 0, sys_profil, "profil" }, /* 44 */ | |
87 | + { 0, 0, sys_getuid32, "getuid32" }, /* 44 */ | |
88 | { 2, TF, sys_umount2, "umount" }, /* 45 */ | |
89 | { 1, 0, sys_setgid, "setgid" }, /* 46 */ | |
90 | { 0, 0, sys_getgid, "getgid" }, /* 47 */ | |
f90d9891 | 91 | @@ -51,10 +51,10 @@ |
de4e0a62 JR |
92 | { 0, 0, sys_getegid, "getegid" }, /* 50 */ |
93 | { 1, 0, sys_acct, "acct" }, /* 51 */ | |
94 | { 0, 0, printargs, "SYS_52" }, /* 52 */ | |
95 | - { 4, 0, sys_mctl, "mctl" }, /* 53 */ | |
96 | + { 0, 0, sys_getgid32, "getgid32" }, /* 53 */ | |
97 | { 3, 0, sys_ioctl, "ioctl" }, /* 54 */ | |
98 | { 2, 0, sys_reboot, "reboot" }, /* 55 */ | |
99 | - { 3, 0, printargs, "SYS_56" }, /* 56 */ | |
100 | + { 6, 0, sys_mmap, "mmap2" }, /* 56 */ | |
101 | { 2, TF, sys_symlink, "symlink" }, /* 57 */ | |
102 | { 3, TF, sys_readlink, "readlink" }, /* 58 */ | |
103 | { 3, TF|TP, sys_execve, "execve" }, /* 59 */ | |
8756befb | 104 | @@ -67,32 +67,31 @@ |
de4e0a62 JR |
105 | { 0, TP, sys_vfork, "vfork" }, /* 66 */ |
106 | { 5, TF, sys_pread, "pread" }, /* 67 */ | |
107 | { 5, TF, sys_pwrite, "pwrite" }, /* 68 */ | |
108 | - { 1, 0, sys_sbrk, "sbrk" }, /* 69 */ | |
109 | - { 1, 0, printargs, "sstk" }, /* 70 */ | |
8756befb | 110 | + { 0, 0, sys_geteuid32, "geteuid32" }, /* 69 */ |
111 | + { 0, 0, sys_getegid32, "getegid32" }, /* 70 */ | |
de4e0a62 JR |
112 | { 6, 0, sys_mmap, "mmap" }, /* 71 */ |
113 | - { 1, 0, printargs, "vadvise" }, /* 72 */ | |
8756befb | 114 | + { 2, 0, sys_setreuid32, "setreuid32" }, /* 72 */ |
de4e0a62 JR |
115 | { 2, 0, sys_munmap, "munmap" }, /* 73 */ |
116 | { 3, 0, sys_mprotect, "mprotect" }, /* 74 */ | |
ed799d14 | 117 | { 3, 0, sys_madvise, "madvise" }, /* 75 */ |
de4e0a62 | 118 | { 1, 0, sys_vhangup, "vhangup" }, /* 76 */ |
8756befb | 119 | - { 2, TF, sys_truncate64, "truncate64" }, /* 77 */ |
120 | + { 2, TF, sys_truncate64, "truncate64" }, /* 77 */ | |
ed799d14 | 121 | { 3, 0, sys_mincore, "mincore" }, /* 78 */ |
de4e0a62 JR |
122 | { 2, 0, sys_getgroups, "getgroups" }, /* 79 */ |
123 | { 2, 0, sys_setgroups, "setgroups" }, /* 80 */ | |
124 | { 1, 0, sys_getpgrp, "getpgrp" }, /* 81 */ | |
125 | - { 2, 0, sys_setpgrp, "setpgrp" }, /* 82 */ | |
8756befb | 126 | + { 2, 0, sys_setgroups32,"setgroups32" }, /* 82 */ |
de4e0a62 JR |
127 | { 3, 0, sys_setitimer, "setitimer" }, /* 83 */ |
128 | - { 0, 0, printargs, "SYS_84" }, /* 84 */ | |
8756befb | 129 | + { 2, 0, sys_ftruncate64,"ftruncate64" }, /* 84 */ |
de4e0a62 JR |
130 | { 1, TF, sys_swapon, "swapon" }, /* 85 */ |
131 | { 2, 0, sys_getitimer, "getitimer" }, /* 86 */ | |
132 | - { 2, 0, sys_gethostname,"gethostname" }, /* 87 */ | |
8756befb | 133 | - { 2, 0, sys_sethostname,"sethostname" }, /* 88 */ |
f90d9891 | 134 | - { 0, 0, sys_getdtablesize,"getdtablesize" }, /* 89 */ |
8756befb | 135 | + { 1, 0, sys_setuid32, "setuid32" }, /* 87 */ |
136 | + { 1, 0, sys_setgid32, "setgid32" }, /* 89 */ | |
de4e0a62 JR |
137 | { 2, 0, sys_dup2, "dup2" }, /* 90 */ |
138 | - { 2, 0, printargs, "getdopt" }, /* 91 */ | |
8756befb | 139 | + { 1, 0, sys_setfsuid32, "setfsuid32" }, /* 91 */ |
de4e0a62 JR |
140 | { 3, 0, sys_fcntl, "fcntl" }, /* 92 */ |
141 | { 5, 0, sys_oldselect, "select" }, /* 93 */ | |
142 | - { 2, 0, printargs, "setdopt" }, /* 94 */ | |
8756befb | 143 | + { 1, 0, sys_setfsgid32, "setfsgid32" }, /* 94 */ |
de4e0a62 JR |
144 | { 1, 0, sys_fsync, "fsync" }, /* 95 */ |
145 | { 3, 0, sys_setpriority,"setpriority" }, /* 96 */ | |
146 | { 3, TN, sys_socket, "socket" }, /* 97 */ | |
8756befb | 147 | @@ -106,14 +105,14 @@ |
de4e0a62 JR |
148 | { 4, TS, sys_rt_sigtimedwait,"rt_sigtimedwait" },/* 105 */ |
149 | { 3, TS, sys_rt_sigqueueinfo,"rt_sigqueueinfo" },/* 106 */ | |
150 | { 2, TS, sys_rt_sigsuspend,"rt_sigsuspend" }, /* 107 */ | |
151 | - { 3, TS, printargs, "sigvec" }, /* 108 */ | |
152 | - { 1, TS, sys_sigblock, "sigblock" }, /* 109 */ | |
153 | - { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 110 */ | |
154 | - { 1, TS, printargs, "sigpause" }, /* 111 */ | |
155 | + { 3, 0, sys_setresuid32,"setresuid32" }, /* 108 */ | |
156 | + { 3, 0, sys_getresuid32,"getresuid32" }, /* 109 */ | |
157 | + { 3, 0, sys_setresgid32,"setresgid32" }, /* 110 */ | |
158 | + { 3, 0, sys_getresgid32,"getresgid32" }, /* 111 */ | |
159 | { 2, TS, printargs, "sigstack" }, /* 112 */ | |
160 | { 3, TN, sys_recvmsg, "recvmsg" }, /* 113 */ | |
161 | { 3, TN, sys_sendmsg, "sendmsg" }, /* 114 */ | |
162 | - { 3, 0, printargs, "vtrace" }, /* 115 */ | |
163 | + { 3, 0, sys_getgroups32,"getgroups32" }, /* 115 */ | |
164 | { 2, 0, sys_gettimeofday,"gettimeofday" }, /* 116 */ | |
165 | { 2, 0, sys_getrusage, "getrusage" }, /* 117 */ | |
166 | { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */ | |
f90d9891 JB |
167 | diff -Nur strace-4.4.orig/linux/syscall.h strace-4.4/linux/syscall.h |
168 | --- strace-4.4.orig/linux/syscall.h Sun Apr 8 21:14:05 2001 | |
169 | +++ strace-4.4/linux/syscall.h Fri Oct 19 15:28:02 2001 | |
fcc8ff10 | 170 | @@ -84,6 +84,12 @@ |
ed799d14 AM |
171 | int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64(); |
172 | int sys_truncate64(), sys_ftruncate64(), sys_pivotroot(); | |
173 | ||
174 | +/* 32bit uids */ | |
175 | +int sys_getuid32(), sys_getgid32(), sys_geteuid32(), sys_getegid32(); | |
176 | +int sys_setreuid32(), sys_setregid32(), sys_getgroups32(), sys_setgroups32(); | |
fcc8ff10 JB |
177 | +int sys_setresuid32(), sys_getresuid32(), sys_setresgid32(); |
178 | +int sys_getresgid32(), sys_setuid32(), sys_setgid32(); | |
ed799d14 AM |
179 | +int sys_setfsuid32(), sys_setfsgid32(); |
180 | ||
181 | /* sys_socketcall subcalls */ | |
182 | ||
f90d9891 JB |
183 | diff -Nur strace-4.4.orig/process.c strace-4.4/process.c |
184 | --- strace-4.4.orig/process.c Fri Oct 19 15:27:34 2001 | |
185 | +++ strace-4.4/process.c Fri Oct 19 15:28:02 2001 | |
186 | @@ -884,6 +884,80 @@ | |
de4e0a62 JR |
187 | return 0; |
188 | } | |
189 | ||
190 | +int | |
191 | +sys_setuid32(tcp) | |
192 | +struct tcb *tcp; | |
193 | +{ | |
194 | + if (entering(tcp)) { | |
195 | + tprintf("%u", (__kernel_uid32_t) tcp->u_arg[0]); | |
196 | + } | |
197 | + return 0; | |
198 | +} | |
199 | + | |
200 | +int | |
201 | +sys_setgid32(tcp) | |
202 | +struct tcb *tcp; | |
203 | +{ | |
204 | + if (entering(tcp)) { | |
205 | + tprintf("%u", (__kernel_gid32_t) tcp->u_arg[0]); | |
206 | + } | |
207 | + return 0; | |
208 | +} | |
209 | + | |
210 | +int | |
211 | +sys_getresuid32(tcp) | |
212 | + struct tcb *tcp; | |
213 | +{ | |
214 | + if (exiting(tcp)) { | |
215 | + __kernel_uid32_t uid; | |
216 | + if (syserror(tcp)) | |
217 | + tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0], | |
218 | + tcp->u_arg[1], tcp->u_arg[2]); | |
219 | + else { | |
220 | + if (umove(tcp, tcp->u_arg[0], &uid) < 0) | |
221 | + tprintf("%#lx, ", tcp->u_arg[0]); | |
222 | + else | |
223 | + tprintf("ruid %lu, ", (unsigned long) uid); | |
224 | + if (umove(tcp, tcp->u_arg[0], &uid) < 0) | |
225 | + tprintf("%#lx, ", tcp->u_arg[0]); | |
226 | + else | |
227 | + tprintf("euid %lu, ", (unsigned long) uid); | |
228 | + if (umove(tcp, tcp->u_arg[0], &uid) < 0) | |
229 | + tprintf("%#lx", tcp->u_arg[0]); | |
230 | + else | |
231 | + tprintf("suid %lu", (unsigned long) uid); | |
232 | + } | |
233 | + } | |
234 | + return 0; | |
235 | +} | |
236 | + | |
237 | +int | |
238 | +sys_getresgid32(tcp) | |
239 | +struct tcb *tcp; | |
240 | +{ | |
241 | + if (exiting(tcp)) { | |
242 | + __kernel_gid32_t gid; | |
243 | + if (syserror(tcp)) | |
244 | + tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0], | |
245 | + tcp->u_arg[1], tcp->u_arg[2]); | |
246 | + else { | |
247 | + if (umove(tcp, tcp->u_arg[0], &gid) < 0) | |
248 | + tprintf("%#lx, ", tcp->u_arg[0]); | |
249 | + else | |
250 | + tprintf("rgid %lu, ", (unsigned long) gid); | |
251 | + if (umove(tcp, tcp->u_arg[0], &gid) < 0) | |
252 | + tprintf("%#lx, ", tcp->u_arg[0]); | |
253 | + else | |
254 | + tprintf("egid %lu, ", (unsigned long) gid); | |
255 | + if (umove(tcp, tcp->u_arg[0], &gid) < 0) | |
256 | + tprintf("%#lx", tcp->u_arg[0]); | |
257 | + else | |
258 | + tprintf("sgid %lu", (unsigned long) gid); | |
259 | + } | |
260 | + } | |
261 | + return 0; | |
262 | +} | |
263 | + | |
264 | #endif /* LINUX */ | |
265 | ||
266 | int | |
f90d9891 | 267 | @@ -912,6 +986,30 @@ |
de4e0a62 | 268 | |
ed799d14 | 269 | #if defined(LINUX) || defined(FREEBSD) |
de4e0a62 JR |
270 | int |
271 | +sys_setreuid32(tcp) | |
272 | +struct tcb *tcp; | |
273 | +{ | |
274 | + if (entering(tcp)) { | |
275 | + tprintf("%lu, %lu", | |
276 | + (unsigned long) (__kernel_uid32_t) tcp->u_arg[0], | |
277 | + (unsigned long) (__kernel_uid32_t) tcp->u_arg[1]); | |
278 | + } | |
279 | + return 0; | |
280 | +} | |
281 | + | |
282 | +int | |
283 | +sys_setregid32(tcp) | |
284 | +struct tcb *tcp; | |
285 | +{ | |
286 | + if (entering(tcp)) { | |
287 | + tprintf("%lu, %lu", | |
288 | + (unsigned long) (__kernel_gid32_t) tcp->u_arg[0], | |
289 | + (unsigned long) (__kernel_gid32_t) tcp->u_arg[1]); | |
290 | + } | |
291 | + return 0; | |
292 | +} | |
293 | + | |
294 | +int | |
295 | sys_setresuid(tcp) | |
296 | struct tcb *tcp; | |
297 | { | |
f90d9891 | 298 | @@ -929,9 +1027,35 @@ |
de4e0a62 JR |
299 | { |
300 | if (entering(tcp)) { | |
301 | tprintf("rgid %u, egid %u, sgid %u", | |
302 | - (uid_t) tcp->u_arg[0], | |
303 | - (uid_t) tcp->u_arg[1], | |
304 | - (uid_t) tcp->u_arg[2]); | |
305 | + (gid_t) tcp->u_arg[0], | |
306 | + (gid_t) tcp->u_arg[1], | |
307 | + (gid_t) tcp->u_arg[2]); | |
308 | + } | |
309 | + return 0; | |
310 | +} | |
311 | + | |
312 | +int | |
313 | +sys_setresuid32(tcp) | |
314 | + struct tcb *tcp; | |
315 | +{ | |
316 | + if (entering(tcp)) { | |
317 | + tprintf("ruid %u, euid %u, suid %u", | |
318 | + (__kernel_uid32_t) tcp->u_arg[0], | |
319 | + (__kernel_uid32_t) tcp->u_arg[1], | |
320 | + (__kernel_uid32_t) tcp->u_arg[2]); | |
321 | + } | |
322 | + return 0; | |
323 | +} | |
324 | + | |
325 | +int | |
326 | +sys_setresgid32(tcp) | |
327 | + struct tcb *tcp; | |
328 | +{ | |
329 | + if (entering(tcp)) { | |
330 | + tprintf("rgid %u, egid %u, sgid %u", | |
331 | + (__kernel_gid32_t) tcp->u_arg[0], | |
332 | + (__kernel_gid32_t) tcp->u_arg[1], | |
333 | + (__kernel_gid32_t) tcp->u_arg[2]); | |
334 | } | |
335 | return 0; | |
336 | } | |
f90d9891 | 337 | @@ -1014,6 +1138,84 @@ |
de4e0a62 JR |
338 | return 0; |
339 | } | |
f90d9891 | 340 | |
de4e0a62 JR |
341 | +#ifdef LINUX |
342 | +int | |
343 | +sys_setgroups32(tcp) | |
344 | +struct tcb *tcp; | |
345 | +{ | |
346 | + int i, len; | |
347 | + __kernel_gid32_t *gidset; | |
348 | + | |
349 | + if (entering(tcp)) { | |
350 | + len = tcp->u_arg[0]; | |
351 | + tprintf("%u, ", len); | |
352 | + if (len <= 0) { | |
353 | + tprintf("[]"); | |
354 | + return 0; | |
355 | + } | |
356 | + gidset = (__kernel_gid32_t *) malloc(len * sizeof(GETGROUPS_T)); | |
357 | + if (gidset == NULL) { | |
358 | + fprintf(stderr, "sys_setgroups: out of memory\n"); | |
359 | + return -1; | |
360 | + } | |
361 | + if (!verbose(tcp)) | |
362 | + tprintf("%#lx", tcp->u_arg[1]); | |
363 | + else if (umoven(tcp, tcp->u_arg[1], | |
364 | + len * sizeof(__kernel_gid32_t), (char *) gidset) < 0) | |
365 | + tprintf("[?]"); | |
366 | + else { | |
367 | + tprintf("["); | |
368 | + for (i = 0; i < len; i++) | |
369 | + tprintf("%s%lu", i ? ", " : "", | |
370 | + (unsigned long) gidset[i]); | |
371 | + tprintf("]"); | |
372 | + } | |
373 | + free((char *) gidset); | |
374 | + } | |
375 | + return 0; | |
376 | +} | |
377 | + | |
378 | +int | |
379 | +sys_getgroups32(tcp) | |
380 | +struct tcb *tcp; | |
381 | +{ | |
382 | + int i, len; | |
383 | + __kernel_gid32_t *gidset; | |
384 | + | |
385 | + if (entering(tcp)) { | |
386 | + len = tcp->u_arg[0]; | |
387 | + tprintf("%u, ", len); | |
388 | + } else { | |
389 | + len = tcp->u_rval; | |
390 | + if (len <= 0) { | |
391 | + tprintf("[]"); | |
392 | + return 0; | |
393 | + } | |
394 | + gidset = (__kernel_gid32_t *) malloc(len * sizeof(GETGROUPS_T)); | |
395 | + if (gidset == NULL) { | |
396 | + fprintf(stderr, "sys_getgroups: out of memory\n"); | |
397 | + return -1; | |
398 | + } | |
399 | + if (!tcp->u_arg[1]) | |
400 | + tprintf("NULL"); | |
401 | + else if (!verbose(tcp) || tcp->u_arg[0] == 0) | |
402 | + tprintf("%#lx", tcp->u_arg[1]); | |
403 | + else if (umoven(tcp, tcp->u_arg[1], | |
404 | + len * sizeof(GETGROUPS_T), (char *) gidset) < 0) | |
405 | + tprintf("[?]"); | |
406 | + else { | |
407 | + tprintf("["); | |
408 | + for (i = 0; i < len; i++) | |
409 | + tprintf("%s%lu", i ? ", " : "", | |
410 | + (unsigned long) gidset[i]); | |
411 | + tprintf("]"); | |
412 | + } | |
413 | + free((char *)gidset); | |
414 | + } | |
415 | + return 0; | |
416 | +} | |
417 | +#endif | |
f90d9891 | 418 | + |
de4e0a62 JR |
419 | int |
420 | sys_setpgrp(tcp) | |
f90d9891 | 421 | struct tcb *tcp; |
fcc8ff10 JB |
422 | --- strace-4.4.91/linux/syscallent.h.orig Tue Jan 14 20:02:35 2003 |
423 | +++ strace-4.4.91/linux/syscallent.h Tue Jan 14 21:03:13 2003 | |
424 | @@ -246,23 +246,23 @@ | |
425 | { 3, TF, sys_chown, "lchown32" }, /* 198 */ | |
426 | { 0, 0, sys_getuid, "getuid32" }, /* 199 */ | |
427 | ||
428 | - { 0, 0, printargs, "getgid32" }, /* 200 */ | |
429 | - { 0, 0, printargs, "geteuid32" }, /* 201 */ | |
430 | - { 0, 0, printargs, "getegid32" }, /* 202 */ | |
431 | - { 2, 0, printargs, "setreuid32" }, /* 203 */ | |
432 | - { 2, 0, printargs, "setregid32" }, /* 204 */ | |
433 | - { 2, 0, printargs, "getgroups32" }, /* 205 */ | |
434 | - { 2, 0, printargs, "setgroups32" }, /* 206 */ | |
435 | - { 3, 0, printargs, "fchown32" }, /* 207 */ | |
436 | - { 3, 0, printargs, "setresuid32" }, /* 208 */ | |
437 | - { 3, 0, printargs, "getresuid32" }, /* 209 */ | |
438 | - { 3, 0, printargs, "setresgid32" }, /* 210 */ | |
439 | - { 3, 0, printargs, "getresgid32" }, /* 211 */ | |
440 | - { 3, TF, printargs, "chown32" }, /* 212 */ | |
441 | - { 1, 0, printargs, "setuid32" }, /* 213 */ | |
442 | - { 1, 0, printargs, "setgid32" }, /* 214 */ | |
443 | - { 1, 0, printargs, "setfsuid32" }, /* 215 */ | |
444 | - { 1, 0, printargs, "setfsgid32" }, /* 216 */ | |
445 | + { 0, 0, sys_getgid32, "getgid32" }, /* 200 */ | |
446 | + { 0, 0, sys_geteuid32, "geteuid32" }, /* 201 */ | |
447 | + { 0, 0, sys_getegid32, "getegid32" }, /* 202 */ | |
448 | + { 2, 0, sys_setreuid32, "setreuid32" }, /* 203 */ | |
449 | + { 2, 0, sys_setregid32, "setregid32" }, /* 204 */ | |
450 | + { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */ | |
451 | + { 2, 0, sys_setgroups32, "setgroups32" }, /* 206 */ | |
452 | + { 3, 0, sys_fchown, "fchown32" }, /* 207 */ | |
453 | + { 3, 0, sys_setresuid32, "setresuid32" }, /* 208 */ | |
454 | + { 3, 0, sys_getresuid32, "getresuid32" }, /* 209 */ | |
455 | + { 3, 0, sys_setresgid32, "setresgid32" }, /* 210 */ | |
456 | + { 3, 0, sys_getresgid32, "getresgid32" }, /* 211 */ | |
457 | + { 3, TF, sys_chown, "chown32" }, /* 212 */ | |
458 | + { 1, 0, sys_setuid32, "setuid32" }, /* 213 */ | |
459 | + { 1, 0, sys_setgid32, "setgid32" }, /* 214 */ | |
460 | + { 1, 0, sys_setfsuid32, "setfsuid32" }, /* 215 */ | |
461 | + { 1, 0, sys_setfsgid32, "setfsgid32" }, /* 216 */ | |
462 | { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */ | |
463 | { 3, 0, printargs, "mincore" }, /* 218 */ | |
464 | { 3, 0, sys_madvise, "madvise" }, /* 219 */ |