diff options
Diffstat (limited to 'src/libtrace')
-rw-r--r-- | src/libtrace/libtrace.c | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/src/libtrace/libtrace.c b/src/libtrace/libtrace.c index 44f0cc4d0..9dad3859e 100644 --- a/src/libtrace/libtrace.c +++ b/src/libtrace/libtrace.c | |||
@@ -228,26 +228,26 @@ static char *translate(XTable *table, int val) { | |||
228 | return NULL; | 228 | return NULL; |
229 | } | 229 | } |
230 | 230 | ||
231 | static void print_sockaddr(const char *call, const struct sockaddr *addr) { | 231 | static void print_sockaddr(const char *call, const struct sockaddr *addr, int rv) { |
232 | if (addr->sa_family == AF_INET) { | 232 | if (addr->sa_family == AF_INET) { |
233 | struct sockaddr_in *a = (struct sockaddr_in *) addr; | 233 | struct sockaddr_in *a = (struct sockaddr_in *) addr; |
234 | printf("%u:%s:%s %s:%u\n", pid(), name(), call, inet_ntoa(a->sin_addr), ntohs(a->sin_port)); | 234 | printf("%u:%s:%s %s port %u:%d\n", pid(), name(), call, inet_ntoa(a->sin_addr), ntohs(a->sin_port), rv); |
235 | } | 235 | } |
236 | else if (addr->sa_family == AF_INET6) { | 236 | else if (addr->sa_family == AF_INET6) { |
237 | struct sockaddr_in6 *a = (struct sockaddr_in6 *) addr; | 237 | struct sockaddr_in6 *a = (struct sockaddr_in6 *) addr; |
238 | char str[INET6_ADDRSTRLEN]; | 238 | char str[INET6_ADDRSTRLEN]; |
239 | inet_ntop(AF_INET6, &(a->sin6_addr), str, INET6_ADDRSTRLEN); | 239 | inet_ntop(AF_INET6, &(a->sin6_addr), str, INET6_ADDRSTRLEN); |
240 | printf("%u:%s:%s %s\n", pid(), name(), call, str); | 240 | printf("%u:%s:%s %s:%d\n", pid(), name(), call, str, rv); |
241 | } | 241 | } |
242 | else if (addr->sa_family == AF_UNIX) { | 242 | else if (addr->sa_family == AF_UNIX) { |
243 | struct sockaddr_un *a = (struct sockaddr_un *) addr; | 243 | struct sockaddr_un *a = (struct sockaddr_un *) addr; |
244 | if (a->sun_path[0]) | 244 | if (a->sun_path[0]) |
245 | printf("%u:%s:%s %s\n", pid(), name(), call, a->sun_path); | 245 | printf("%u:%s:%s %s:%d\n", pid(), name(), call, a->sun_path, rv); |
246 | else | 246 | else |
247 | printf("%u:%s:%s @%s\n", pid(), name(), call, a->sun_path + 1); | 247 | printf("%u:%s:%s @%s:%d\n", pid(), name(), call, a->sun_path + 1, rv); |
248 | } | 248 | } |
249 | else { | 249 | else { |
250 | printf("%u:%s:%s family %d\n", pid(), name(), call, addr->sa_family); | 250 | printf("%u:%s:%s family %d:%d\n", pid(), name(), call, addr->sa_family, rv); |
251 | } | 251 | } |
252 | } | 252 | } |
253 | 253 | ||
@@ -263,7 +263,7 @@ int open(const char *pathname, int flags, mode_t mode) { | |||
263 | orig_open = (orig_open_t)dlsym(RTLD_NEXT, "open"); | 263 | orig_open = (orig_open_t)dlsym(RTLD_NEXT, "open"); |
264 | 264 | ||
265 | int rv = orig_open(pathname, flags, mode); | 265 | int rv = orig_open(pathname, flags, mode); |
266 | printf("%u:%s:open %s\n", pid(), name(), pathname); | 266 | printf("%u:%s:open %s:%d\n", pid(), name(), pathname, rv); |
267 | return rv; | 267 | return rv; |
268 | } | 268 | } |
269 | 269 | ||
@@ -274,7 +274,7 @@ int open64(const char *pathname, int flags, mode_t mode) { | |||
274 | orig_open64 = (orig_open64_t)dlsym(RTLD_NEXT, "open64"); | 274 | orig_open64 = (orig_open64_t)dlsym(RTLD_NEXT, "open64"); |
275 | 275 | ||
276 | int rv = orig_open64(pathname, flags, mode); | 276 | int rv = orig_open64(pathname, flags, mode); |
277 | printf("%u:%s:open64 %s\n", pid(), name(), pathname); | 277 | printf("%u:%s:open64 %s:%d\n", pid(), name(), pathname, rv); |
278 | return rv; | 278 | return rv; |
279 | } | 279 | } |
280 | 280 | ||
@@ -286,7 +286,7 @@ int openat(int dirfd, const char *pathname, int flags, mode_t mode) { | |||
286 | orig_openat = (orig_openat_t)dlsym(RTLD_NEXT, "openat"); | 286 | orig_openat = (orig_openat_t)dlsym(RTLD_NEXT, "openat"); |
287 | 287 | ||
288 | int rv = orig_openat(dirfd, pathname, flags, mode); | 288 | int rv = orig_openat(dirfd, pathname, flags, mode); |
289 | printf("%u:%s:openat %s\n", pid(), name(), pathname); | 289 | printf("%u:%s:openat %s:%d\n", pid(), name(), pathname, rv); |
290 | return rv; | 290 | return rv; |
291 | } | 291 | } |
292 | 292 | ||
@@ -297,7 +297,7 @@ int openat64(int dirfd, const char *pathname, int flags, mode_t mode) { | |||
297 | orig_openat64 = (orig_openat64_t)dlsym(RTLD_NEXT, "openat64"); | 297 | orig_openat64 = (orig_openat64_t)dlsym(RTLD_NEXT, "openat64"); |
298 | 298 | ||
299 | int rv = orig_openat64(dirfd, pathname, flags, mode); | 299 | int rv = orig_openat64(dirfd, pathname, flags, mode); |
300 | printf("%u:%s:openat64 %s\n", pid(), name(), pathname); | 300 | printf("%u:%s:openat64 %s:%d\n", pid(), name(), pathname, rv); |
301 | return rv; | 301 | return rv; |
302 | } | 302 | } |
303 | 303 | ||
@@ -308,7 +308,7 @@ FILE *fopen(const char *pathname, const char *mode) { | |||
308 | orig_fopen = (orig_fopen_t)dlsym(RTLD_NEXT, "fopen"); | 308 | orig_fopen = (orig_fopen_t)dlsym(RTLD_NEXT, "fopen"); |
309 | 309 | ||
310 | FILE *rv = orig_fopen(pathname, mode); | 310 | FILE *rv = orig_fopen(pathname, mode); |
311 | printf("%u:%s:fopen %s\n", pid(), name(), pathname); | 311 | printf("%u:%s:fopen %s:%p\n", pid(), name(), pathname, rv); |
312 | return rv; | 312 | return rv; |
313 | } | 313 | } |
314 | 314 | ||
@@ -318,7 +318,7 @@ FILE *fopen64(const char *pathname, const char *mode) { | |||
318 | orig_fopen64 = (orig_fopen_t)dlsym(RTLD_NEXT, "fopen64"); | 318 | orig_fopen64 = (orig_fopen_t)dlsym(RTLD_NEXT, "fopen64"); |
319 | 319 | ||
320 | FILE *rv = orig_fopen64(pathname, mode); | 320 | FILE *rv = orig_fopen64(pathname, mode); |
321 | printf("%u:%s:fopen64 %s\n", pid(), name(), pathname); | 321 | printf("%u:%s:fopen64 %s:%p\n", pid(), name(), pathname, rv); |
322 | return rv; | 322 | return rv; |
323 | } | 323 | } |
324 | #endif /* __GLIBC__ */ | 324 | #endif /* __GLIBC__ */ |
@@ -332,7 +332,7 @@ FILE *freopen(const char *pathname, const char *mode, FILE *stream) { | |||
332 | orig_freopen = (orig_freopen_t)dlsym(RTLD_NEXT, "freopen"); | 332 | orig_freopen = (orig_freopen_t)dlsym(RTLD_NEXT, "freopen"); |
333 | 333 | ||
334 | FILE *rv = orig_freopen(pathname, mode, stream); | 334 | FILE *rv = orig_freopen(pathname, mode, stream); |
335 | printf("%u:%s:freopen %s\n", pid(), name(), pathname); | 335 | printf("%u:%s:freopen %s:%p\n", pid(), name(), pathname, rv); |
336 | return rv; | 336 | return rv; |
337 | } | 337 | } |
338 | 338 | ||
@@ -344,7 +344,7 @@ FILE *freopen64(const char *pathname, const char *mode, FILE *stream) { | |||
344 | orig_freopen64 = (orig_freopen64_t)dlsym(RTLD_NEXT, "freopen64"); | 344 | orig_freopen64 = (orig_freopen64_t)dlsym(RTLD_NEXT, "freopen64"); |
345 | 345 | ||
346 | FILE *rv = orig_freopen64(pathname, mode, stream); | 346 | FILE *rv = orig_freopen64(pathname, mode, stream); |
347 | printf("%u:%s:freopen64 %s\n", pid(), name(), pathname); | 347 | printf("%u:%s:freopen64 %s:%p\n", pid(), name(), pathname, rv); |
348 | return rv; | 348 | return rv; |
349 | } | 349 | } |
350 | #endif /* __GLIBC__ */ | 350 | #endif /* __GLIBC__ */ |
@@ -357,7 +357,7 @@ int unlink(const char *pathname) { | |||
357 | orig_unlink = (orig_unlink_t)dlsym(RTLD_NEXT, "unlink"); | 357 | orig_unlink = (orig_unlink_t)dlsym(RTLD_NEXT, "unlink"); |
358 | 358 | ||
359 | int rv = orig_unlink(pathname); | 359 | int rv = orig_unlink(pathname); |
360 | printf("%u:%s:unlink %s\n", pid(), name(), pathname); | 360 | printf("%u:%s:unlink %s:%d\n", pid(), name(), pathname, rv); |
361 | return rv; | 361 | return rv; |
362 | } | 362 | } |
363 | 363 | ||
@@ -368,7 +368,7 @@ int unlinkat(int dirfd, const char *pathname, int flags) { | |||
368 | orig_unlinkat = (orig_unlinkat_t)dlsym(RTLD_NEXT, "unlinkat"); | 368 | orig_unlinkat = (orig_unlinkat_t)dlsym(RTLD_NEXT, "unlinkat"); |
369 | 369 | ||
370 | int rv = orig_unlinkat(dirfd, pathname, flags); | 370 | int rv = orig_unlinkat(dirfd, pathname, flags); |
371 | printf("%u:%s:unlinkat %s\n", pid(), name(), pathname); | 371 | printf("%u:%s:unlinkat %s:%d\n", pid(), name(), pathname, rv); |
372 | return rv; | 372 | return rv; |
373 | } | 373 | } |
374 | 374 | ||
@@ -380,7 +380,7 @@ int mkdir(const char *pathname, mode_t mode) { | |||
380 | orig_mkdir = (orig_mkdir_t)dlsym(RTLD_NEXT, "mkdir"); | 380 | orig_mkdir = (orig_mkdir_t)dlsym(RTLD_NEXT, "mkdir"); |
381 | 381 | ||
382 | int rv = orig_mkdir(pathname, mode); | 382 | int rv = orig_mkdir(pathname, mode); |
383 | printf("%u:%s:mkdir %s\n", pid(), name(), pathname); | 383 | printf("%u:%s:mkdir %s:%d\n", pid(), name(), pathname, rv); |
384 | return rv; | 384 | return rv; |
385 | } | 385 | } |
386 | 386 | ||
@@ -391,7 +391,7 @@ int mkdirat(int dirfd, const char *pathname, mode_t mode) { | |||
391 | orig_mkdirat = (orig_mkdirat_t)dlsym(RTLD_NEXT, "mkdirat"); | 391 | orig_mkdirat = (orig_mkdirat_t)dlsym(RTLD_NEXT, "mkdirat"); |
392 | 392 | ||
393 | int rv = orig_mkdirat(dirfd, pathname, mode); | 393 | int rv = orig_mkdirat(dirfd, pathname, mode); |
394 | printf("%u:%s:mkdirat %s\n", pid(), name(), pathname); | 394 | printf("%u:%s:mkdirat %s:%d\n", pid(), name(), pathname, rv); |
395 | return rv; | 395 | return rv; |
396 | } | 396 | } |
397 | 397 | ||
@@ -402,7 +402,7 @@ int rmdir(const char *pathname) { | |||
402 | orig_rmdir = (orig_rmdir_t)dlsym(RTLD_NEXT, "rmdir"); | 402 | orig_rmdir = (orig_rmdir_t)dlsym(RTLD_NEXT, "rmdir"); |
403 | 403 | ||
404 | int rv = orig_rmdir(pathname); | 404 | int rv = orig_rmdir(pathname); |
405 | printf("%u:%s:rmdir %s\n", pid(), name(), pathname); | 405 | printf("%u:%s:rmdir %s:%d\n", pid(), name(), pathname, rv); |
406 | return rv; | 406 | return rv; |
407 | } | 407 | } |
408 | 408 | ||
@@ -414,7 +414,7 @@ int stat(const char *pathname, struct stat *buf) { | |||
414 | orig_stat = (orig_stat_t)dlsym(RTLD_NEXT, "stat"); | 414 | orig_stat = (orig_stat_t)dlsym(RTLD_NEXT, "stat"); |
415 | 415 | ||
416 | int rv = orig_stat(pathname, buf); | 416 | int rv = orig_stat(pathname, buf); |
417 | printf("%u:%s:stat %s\n", pid(), name(), pathname); | 417 | printf("%u:%s:stat %s:%d\n", pid(), name(), pathname, rv); |
418 | return rv; | 418 | return rv; |
419 | } | 419 | } |
420 | 420 | ||
@@ -426,7 +426,7 @@ int stat64(const char *pathname, struct stat64 *buf) { | |||
426 | orig_stat64 = (orig_stat64_t)dlsym(RTLD_NEXT, "stat"); | 426 | orig_stat64 = (orig_stat64_t)dlsym(RTLD_NEXT, "stat"); |
427 | 427 | ||
428 | int rv = orig_stat64(pathname, buf); | 428 | int rv = orig_stat64(pathname, buf); |
429 | printf("%u:%s:stat %s\n", pid(), name(), pathname); | 429 | printf("%u:%s:stat %s:%d\n", pid(), name(), pathname, rv); |
430 | return rv; | 430 | return rv; |
431 | } | 431 | } |
432 | #endif /* __GLIBC__ */ | 432 | #endif /* __GLIBC__ */ |
@@ -440,7 +440,7 @@ int access(const char *pathname, int mode) { | |||
440 | orig_access = (orig_access_t)dlsym(RTLD_NEXT, "access"); | 440 | orig_access = (orig_access_t)dlsym(RTLD_NEXT, "access"); |
441 | 441 | ||
442 | int rv = orig_access(pathname, mode); | 442 | int rv = orig_access(pathname, mode); |
443 | printf("%u:%s:access %s\n", pid(), name(), pathname); | 443 | printf("%u:%s:access %s:%d\n", pid(), name(), pathname, rv); |
444 | return rv; | 444 | return rv; |
445 | } | 445 | } |
446 | 446 | ||
@@ -453,7 +453,7 @@ int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) { | |||
453 | orig_connect = (orig_connect_t)dlsym(RTLD_NEXT, "connect"); | 453 | orig_connect = (orig_connect_t)dlsym(RTLD_NEXT, "connect"); |
454 | 454 | ||
455 | int rv = orig_connect(sockfd, addr, addrlen); | 455 | int rv = orig_connect(sockfd, addr, addrlen); |
456 | print_sockaddr("connect", addr); | 456 | print_sockaddr("connect", addr, rv); |
457 | 457 | ||
458 | return rv; | 458 | return rv; |
459 | } | 459 | } |
@@ -494,7 +494,7 @@ int socket(int domain, int type, int protocol) { | |||
494 | else | 494 | else |
495 | sprintf(ptr, "%s", str); | 495 | sprintf(ptr, "%s", str); |
496 | 496 | ||
497 | printf("%s\n", buf); | 497 | printf("%s:%d\n", buf, rv); |
498 | return rv; | 498 | return rv; |
499 | } | 499 | } |
500 | 500 | ||
@@ -506,7 +506,7 @@ int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) { | |||
506 | orig_bind = (orig_bind_t)dlsym(RTLD_NEXT, "bind"); | 506 | orig_bind = (orig_bind_t)dlsym(RTLD_NEXT, "bind"); |
507 | 507 | ||
508 | int rv = orig_bind(sockfd, addr, addrlen); | 508 | int rv = orig_bind(sockfd, addr, addrlen); |
509 | print_sockaddr("bind", addr); | 509 | print_sockaddr("bind", addr, rv); |
510 | 510 | ||
511 | return rv; | 511 | return rv; |
512 | } | 512 | } |
@@ -519,7 +519,7 @@ int accept(int sockfd, struct sockaddr *addr, socklen_t addrlen) { | |||
519 | orig_accept = (orig_accept_t)dlsym(RTLD_NEXT, "accept"); | 519 | orig_accept = (orig_accept_t)dlsym(RTLD_NEXT, "accept"); |
520 | 520 | ||
521 | int rv = orig_accept(sockfd, addr, addrlen); | 521 | int rv = orig_accept(sockfd, addr, addrlen); |
522 | print_sockaddr("accept", addr); | 522 | print_sockaddr("accept", addr, rv); |
523 | 523 | ||
524 | return rv; | 524 | return rv; |
525 | } | 525 | } |
@@ -532,7 +532,7 @@ int system(const char *command) { | |||
532 | orig_system = (orig_system_t)dlsym(RTLD_NEXT, "system"); | 532 | orig_system = (orig_system_t)dlsym(RTLD_NEXT, "system"); |
533 | 533 | ||
534 | int rv = orig_system(command); | 534 | int rv = orig_system(command); |
535 | printf("%u:%s:system %s\n", pid(), name(), command); | 535 | printf("%u:%s:system %s:%d\n", pid(), name(), command, rv); |
536 | 536 | ||
537 | return rv; | 537 | return rv; |
538 | } | 538 | } |
@@ -544,7 +544,7 @@ int setuid(uid_t uid) { | |||
544 | orig_setuid = (orig_setuid_t)dlsym(RTLD_NEXT, "setuid"); | 544 | orig_setuid = (orig_setuid_t)dlsym(RTLD_NEXT, "setuid"); |
545 | 545 | ||
546 | int rv = orig_setuid(uid); | 546 | int rv = orig_setuid(uid); |
547 | printf("%u:%s:setuid %d\n", pid(), name(), uid); | 547 | printf("%u:%s:setuid %d:%d\n", pid(), name(), uid, rv); |
548 | 548 | ||
549 | return rv; | 549 | return rv; |
550 | } | 550 | } |
@@ -556,7 +556,7 @@ int setgid(gid_t gid) { | |||
556 | orig_setgid = (orig_setgid_t)dlsym(RTLD_NEXT, "setgid"); | 556 | orig_setgid = (orig_setgid_t)dlsym(RTLD_NEXT, "setgid"); |
557 | 557 | ||
558 | int rv = orig_setgid(gid); | 558 | int rv = orig_setgid(gid); |
559 | printf("%u:%s:setgid %d\n", pid(), name(), gid); | 559 | printf("%u:%s:setgid %d:%d\n", pid(), name(), gid, rv); |
560 | 560 | ||
561 | return rv; | 561 | return rv; |
562 | } | 562 | } |
@@ -568,7 +568,7 @@ int setfsuid(uid_t uid) { | |||
568 | orig_setfsuid = (orig_setfsuid_t)dlsym(RTLD_NEXT, "setfsuid"); | 568 | orig_setfsuid = (orig_setfsuid_t)dlsym(RTLD_NEXT, "setfsuid"); |
569 | 569 | ||
570 | int rv = orig_setfsuid(uid); | 570 | int rv = orig_setfsuid(uid); |
571 | printf("%u:%s:setfsuid %d\n", pid(), name(), uid); | 571 | printf("%u:%s:setfsuid %d:%d\n", pid(), name(), uid, rv); |
572 | 572 | ||
573 | return rv; | 573 | return rv; |
574 | } | 574 | } |
@@ -580,7 +580,7 @@ int setfsgid(gid_t gid) { | |||
580 | orig_setfsgid = (orig_setfsgid_t)dlsym(RTLD_NEXT, "setfsgid"); | 580 | orig_setfsgid = (orig_setfsgid_t)dlsym(RTLD_NEXT, "setfsgid"); |
581 | 581 | ||
582 | int rv = orig_setfsgid(gid); | 582 | int rv = orig_setfsgid(gid); |
583 | printf("%u:%s:setfsgid %d\n", pid(), name(), gid); | 583 | printf("%u:%s:setfsgid %d:%d\n", pid(), name(), gid, rv); |
584 | 584 | ||
585 | return rv; | 585 | return rv; |
586 | } | 586 | } |
@@ -592,7 +592,7 @@ int setreuid(uid_t ruid, uid_t euid) { | |||
592 | orig_setreuid = (orig_setreuid_t)dlsym(RTLD_NEXT, "setreuid"); | 592 | orig_setreuid = (orig_setreuid_t)dlsym(RTLD_NEXT, "setreuid"); |
593 | 593 | ||
594 | int rv = orig_setreuid(ruid, euid); | 594 | int rv = orig_setreuid(ruid, euid); |
595 | printf("%u:%s:setreuid %d %d\n", pid(), name(), ruid, euid); | 595 | printf("%u:%s:setreuid %d %d:%d\n", pid(), name(), ruid, euid, rv); |
596 | 596 | ||
597 | return rv; | 597 | return rv; |
598 | } | 598 | } |
@@ -604,7 +604,7 @@ int setregid(gid_t rgid, gid_t egid) { | |||
604 | orig_setregid = (orig_setregid_t)dlsym(RTLD_NEXT, "setregid"); | 604 | orig_setregid = (orig_setregid_t)dlsym(RTLD_NEXT, "setregid"); |
605 | 605 | ||
606 | int rv = orig_setregid(rgid, egid); | 606 | int rv = orig_setregid(rgid, egid); |
607 | printf("%u:%s:setregid %d %d\n", pid(), name(), rgid, egid); | 607 | printf("%u:%s:setregid %d %d:%d\n", pid(), name(), rgid, egid, rv); |
608 | 608 | ||
609 | return rv; | 609 | return rv; |
610 | } | 610 | } |
@@ -616,7 +616,7 @@ int setresuid(uid_t ruid, uid_t euid, uid_t suid) { | |||
616 | orig_setresuid = (orig_setresuid_t)dlsym(RTLD_NEXT, "setresuid"); | 616 | orig_setresuid = (orig_setresuid_t)dlsym(RTLD_NEXT, "setresuid"); |
617 | 617 | ||
618 | int rv = orig_setresuid(ruid, euid, suid); | 618 | int rv = orig_setresuid(ruid, euid, suid); |
619 | printf("%u:%s:setresuid %d %d %d\n", pid(), name(), ruid, euid, suid); | 619 | printf("%u:%s:setresuid %d %d %d:%d\n", pid(), name(), ruid, euid, suid, rv); |
620 | 620 | ||
621 | return rv; | 621 | return rv; |
622 | } | 622 | } |
@@ -628,7 +628,7 @@ int setresgid(gid_t rgid, gid_t egid, gid_t sgid) { | |||
628 | orig_setresgid = (orig_setresgid_t)dlsym(RTLD_NEXT, "setresgid"); | 628 | orig_setresgid = (orig_setresgid_t)dlsym(RTLD_NEXT, "setresgid"); |
629 | 629 | ||
630 | int rv = orig_setresgid(rgid, egid, sgid); | 630 | int rv = orig_setresgid(rgid, egid, sgid); |
631 | printf("%u:%s:setresgid %d %d %d\n", pid(), name(), rgid, egid, sgid); | 631 | printf("%u:%s:setresgid %d %d %d:%d\n", pid(), name(), rgid, egid, sgid, rv); |
632 | 632 | ||
633 | return rv; | 633 | return rv; |
634 | } | 634 | } |