Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 71696 | Differences between
and this patch

Collapse All | Expand All

(-)strace-4.5.8/configure.ac (-1 / +5 lines)
Lines 1-6 Link Here
1
dnl Process this file with autoconf to create configure.  Use autoreconf.
1
dnl Process this file with autoconf to create configure.  Use autoreconf.
2
AC_PREREQ(2.57)
2
AC_PREREQ(2.57)
3
AC_INIT([strace],[4.5.8])
3
AC_INIT([strace],[4.5.8X])
4
AC_CONFIG_SRCDIR([strace.c])
4
AC_CONFIG_SRCDIR([strace.c])
5
AM_CONFIG_HEADER([config.h])
5
AM_CONFIG_HEADER([config.h])
6
AM_INIT_AUTOMAKE([foreign check-news dist-bzip2])
6
AM_INIT_AUTOMAKE([foreign check-news dist-bzip2])
Lines 192-197 Link Here
192
AC_CHECK_LIB(nsl, main)
192
AC_CHECK_LIB(nsl, main)
193
fi
193
fi
194
194
195
dnl See if Security-Enhanced Linux library is available.
196
AC_CHECK_HEADERS([selinux/selinux.h])
197
AC_CHECK_LIB([selinux], [is_selinux_enabled])
198
195
AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname)
199
AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname)
196
AC_CHECK_HEADERS([sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h  poll.h sys/poll.h sys/vfs.h asm/sysmips.h linux/utsname.h sys/nscsys.h mqueue.h sys/epoll.h], [], [])
200
AC_CHECK_HEADERS([sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h  poll.h sys/poll.h sys/vfs.h asm/sysmips.h linux/utsname.h sys/nscsys.h mqueue.h sys/epoll.h], [], [])
197
AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
201
AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
(-)strace-4.5.8/defs.h (+42 lines)
Lines 600-602 Link Here
600
#endif
600
#endif
601
601
602
extern int not_failing_only;
602
extern int not_failing_only;
603
604
/* Addition to support SELinux */
605
606
#if defined HAVE_SELINUX_SELINUX_H && defined HAVE_LIBSELINUX
607
#include <selinux/selinux.h>
608
#define SELINUX
609
extern void selinux_printcon P(());
610
extern void selinux_printpid P((long));
611
extern void selinux_printprevcon P(());
612
extern void selinux_printexeccon P(());
613
extern void selinux_printfscreatecon P(());
614
extern void selinux_printpath P((const char *));
615
extern void selinux_printlpath P((const char *));
616
extern void selinux_printdesc P((long, long));
617
extern int selinux_enabled;
618
#endif
619
620
/* Inlined printers */
621
622
inline static void
623
printdesc(long pid, long fd)
624
{
625
	tprintf("%ld", fd);
626
#if defined SELINUX
627
	selinux_printdesc(pid, fd);
628
#endif
629
}
630
631
inline static void
632
printpid(long pid)
633
{
634
	tprintf("%ld", pid);
635
#if defined SELINUX
636
	selinux_printpid(pid);
637
#endif
638
}
639
640
inline static void
641
printargsep()
642
{
643
	tprintf(", ");
644
}
(-)strace-4.5.8/depcomp (-43 / +2 lines)
Lines 1-9 Link Here
1
#! /bin/sh
1
#! /bin/sh
2
# depcomp - compile a program generating dependencies as side-effects
3
4
scriptversion=2003-11-08.23
5
2
6
# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
3
# depcomp - compile a program generating dependencies as side-effects
4
# Copyright 1999, 2000, 2003 Free Software Foundation, Inc.
7
5
8
# This program is free software; you can redistribute it and/or modify
6
# This program is free software; you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
7
# it under the terms of the GNU General Public License as published by
Lines 27-62 Link Here
27
25
28
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
26
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
29
27
30
case $1 in
31
  '')
32
     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
33
     exit 1;
34
     ;;
35
  -h | --h*)
36
    cat <<\EOF
37
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
38
39
Run PROGRAMS ARGS to compile a file, generating dependencies
40
as side-effects.
41
42
Environment variables:
43
  depmode     Dependency tracking mode.
44
  source      Source file read by `PROGRAMS ARGS'.
45
  object      Object file output by `PROGRAMS ARGS'.
46
  depfile     Dependency file to output.
47
  tmpdepfile  Temporary file to use when outputing dependencies.
48
  libtool     Whether libtool is used (yes/no).
49
50
Report bugs to <bug-automake@gnu.org>.
51
EOF
52
    exit 0
53
    ;;
54
  -v | --v*)
55
    echo "depcomp $scriptversion"
56
    exit 0
57
    ;;
58
esac
59
60
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
28
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
29
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
62
  exit 1
30
  exit 1
Lines 509-520 Link Here
509
esac
477
esac
510
478
511
exit 0
479
exit 0
512
513
# Local Variables:
514
# mode: shell-script
515
# sh-indentation: 2
516
# eval: (add-hook 'write-file-hooks 'time-stamp)
517
# time-stamp-start: "scriptversion="
518
# time-stamp-format: "%:y-%02m-%02d.%02H"
519
# time-stamp-end: "$"
520
# End:
(-)strace-4.5.8/desc.c (-5 / +9 lines)
Lines 270-276 Link Here
270
	extern const struct xlat openmodes[];
270
	extern const struct xlat openmodes[];
271
271
272
	if (entering(tcp)) {
272
	if (entering(tcp)) {
273
		tprintf("%ld, ", tcp->u_arg[0]);
273
		printdesc(tcp->pid, tcp->u_arg[0]);
274
		tprintf(", ");
274
		printxval(fcntlcmds, tcp->u_arg[1], "F_???");
275
		printxval(fcntlcmds, tcp->u_arg[1], "F_???");
275
		switch (tcp->u_arg[1]) {
276
		switch (tcp->u_arg[1]) {
276
		case F_SETFD:
277
		case F_SETFD:
Lines 353-359 Link Here
353
struct tcb *tcp;
354
struct tcb *tcp;
354
{
355
{
355
	if (entering(tcp)) {
356
	if (entering(tcp)) {
356
		tprintf("%ld, ", tcp->u_arg[0]);
357
		printdesc(tcp->pid, tcp->u_arg[0]);
358
		tprintf(", ");
357
		if (!printflags(flockcmds, tcp->u_arg[1]))
359
		if (!printflags(flockcmds, tcp->u_arg[1]))
358
			tprintf("LOCK_???");
360
			tprintf("LOCK_???");
359
	}
361
	}
Lines 366-372 Link Here
366
struct tcb *tcp;
368
struct tcb *tcp;
367
{
369
{
368
	if (entering(tcp)) {
370
	if (entering(tcp)) {
369
		tprintf("%ld", tcp->u_arg[0]);
371
		printdesc(tcp->pid, tcp->u_arg[0]);
370
	}
372
	}
371
	return 0;
373
	return 0;
372
}
374
}
Lines 376-382 Link Here
376
struct tcb *tcp;
378
struct tcb *tcp;
377
{
379
{
378
	if (entering(tcp)) {
380
	if (entering(tcp)) {
379
		tprintf("%ld", tcp->u_arg[0]);
381
		printdesc(tcp->pid, tcp->u_arg[0]);
380
	}
382
	}
381
	return 0;
383
	return 0;
382
}
384
}
Lines 386-392 Link Here
386
struct tcb *tcp;
388
struct tcb *tcp;
387
{
389
{
388
	if (entering(tcp)) {
390
	if (entering(tcp)) {
389
		tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]);
391
		printdesc(tcp->pid, tcp->u_arg[0]);
392
		printargsep();
393
		printdesc(tcp->pid, tcp->u_arg[1]);
390
	}
394
	}
391
	return 0;
395
	return 0;
392
}
396
}
(-)strace-4.5.8/file.c (-35 / +60 lines)
Lines 412-418 Link Here
412
	int _whence;
412
	int _whence;
413
413
414
	if (entering(tcp)) {
414
	if (entering(tcp)) {
415
		tprintf("%ld, ", tcp->u_arg[0]);
415
		printdesc(tcp->pid, tcp->u_arg[0]);
416
		tprintf(", ");
416
		offset = tcp->u_arg[1];
417
		offset = tcp->u_arg[1];
417
		_whence = tcp->u_arg[2];
418
		_whence = tcp->u_arg[2];
418
		if (_whence == SEEK_SET)
419
		if (_whence == SEEK_SET)
Lines 436-447 Link Here
436
	 * rather than one 64-bit argument for which LONG_LONG works
437
	 * rather than one 64-bit argument for which LONG_LONG works
437
	 * appropriate for the native byte order.
438
	 * appropriate for the native byte order.
438
	 */
439
	 */
439
	if (tcp->u_arg[4] == SEEK_SET)
440
	printdesc(tcp->pid, tcp->u_arg[0]);
440
	    tprintf("%ld, %llu, ", tcp->u_arg[0],
441
	printargsep();
442
	if (tcp->u_arg[4] == SEEK_SET) 
443
	    tprintf("%llu, ", 
441
		    (((long long int) tcp->u_arg[1]) << 32
444
		    (((long long int) tcp->u_arg[1]) << 32
442
		     | (unsigned long long) (unsigned) tcp->u_arg[2]));
445
		     | (unsigned long long) (unsigned) tcp->u_arg[2]));
443
	else
446
	else
444
	    tprintf("%ld, %lld, ", tcp->u_arg[0],
447
	    tprintf("%lld, ",
445
		    (((long long int) tcp->u_arg[1]) << 32
448
		    (((long long int) tcp->u_arg[1]) << 32
446
		     | (unsigned long long) (unsigned) tcp->u_arg[2]));
449
		     | (unsigned long long) (unsigned) tcp->u_arg[2]));
447
    }
450
    }
Lines 461-467 Link Here
461
struct tcb *tcp;
464
struct tcb *tcp;
462
{
465
{
463
    if (entering(tcp)) {
466
    if (entering(tcp)) {
464
	tprintf("%ld, %lld, %ld", tcp->u_arg[0],
467
	printdesc(tcp->pid, tcp->u_arg[0]);
468
	printargsep();
469
	tprintf("%lld, %ld",
465
# if defined IA64 || defined X86_64 || defined ALPHA
470
# if defined IA64 || defined X86_64 || defined ALPHA
466
		(long long int) tcp->u_arg[1], tcp->u_arg[2]
471
		(long long int) tcp->u_arg[1], tcp->u_arg[2]
467
# else
472
# else
Lines 480-491 Link Here
480
{
485
{
481
	if (entering(tcp)) {
486
	if (entering(tcp)) {
482
		long long offset;
487
		long long offset;
488
		printdesc(tcp->pid, tcp->u_arg[0]);
489
		printargsep();
483
		ALIGN64 (tcp, 1);	/* FreeBSD aligns off_t args */
490
		ALIGN64 (tcp, 1);	/* FreeBSD aligns off_t args */
484
		offset = LONG_LONG(tcp->u_arg [1], tcp->u_arg[2]);
491
		offset = LONG_LONG(tcp->u_arg [1], tcp->u_arg[2]);
485
		if (tcp->u_arg[3] == SEEK_SET)
492
		if (tcp->u_arg[3] == SEEK_SET)
486
			tprintf("%ld, %llu, ", tcp->u_arg[0], offset);
493
			tprintf("%llu, ", offset);
487
		else
494
		else
488
			tprintf("%ld, %lld, ", tcp->u_arg[0], offset);
495
			tprintf("%lld, ", offset);
489
		printxval(whence, tcp->u_arg[3], "SEEK_???");
496
		printxval(whence, tcp->u_arg[3], "SEEK_???");
490
	}
497
	}
491
	return RVAL_LUDECIMAL;
498
	return RVAL_LUDECIMAL;
Lines 525-531 Link Here
525
struct tcb *tcp;
532
struct tcb *tcp;
526
{
533
{
527
	if (entering(tcp)) {
534
	if (entering(tcp)) {
528
		tprintf("%ld, %lu", tcp->u_arg[0], tcp->u_arg[1]);
535
		printdesc(tcp->pid, tcp->u_arg[0]);
536
		tprintf(", %lu", tcp->u_arg[1]);
529
	}
537
	}
530
	return 0;
538
	return 0;
531
}
539
}
Lines 538-544 Link Here
538
{
546
{
539
	if (entering(tcp)) {
547
	if (entering(tcp)) {
540
		ALIGN64 (tcp, 1);
548
		ALIGN64 (tcp, 1);
541
		tprintf("%ld, %llu", tcp->u_arg[0],
549
		printdesc(tcp->pid, tcp->u_arg[0]);
550
		tprintf(", %llu", 
542
			LONG_LONG(tcp->u_arg[1] ,tcp->u_arg[2]));
551
			LONG_LONG(tcp->u_arg[1] ,tcp->u_arg[2]));
543
	}
552
	}
544
	return 0;
553
	return 0;
Lines 783-789 Link Here
783
struct tcb *tcp;
792
struct tcb *tcp;
784
{
793
{
785
	if (entering(tcp)) {
794
	if (entering(tcp)) {
786
		tprintf("%ld, ", tcp->u_arg[0]);
795
		printdesc(tcp->pid, tcp->u_arg[0]);
796
		printargsep();
787
		if (tcp->u_arg[1])
797
		if (tcp->u_arg[1])
788
			printflags(fileflags, tcp->u_arg[1]);
798
			printflags(fileflags, tcp->u_arg[1]);
789
		else
799
		else
Lines 1118-1126 Link Here
1118
sys_fstat(tcp)
1128
sys_fstat(tcp)
1119
struct tcb *tcp;
1129
struct tcb *tcp;
1120
{
1130
{
1121
	if (entering(tcp))
1131
	if (entering(tcp)) {
1122
		tprintf("%ld, ", tcp->u_arg[0]);
1132
		printdesc(tcp->pid, tcp->u_arg[0]);
1123
	else {
1133
		printargsep();
1134
	} else {
1124
		printstat(tcp, tcp->u_arg[1]);
1135
		printstat(tcp, tcp->u_arg[1]);
1125
	}
1136
	}
1126
	return 0;
1137
	return 0;
Lines 1132-1140 Link Here
1132
struct tcb *tcp;
1143
struct tcb *tcp;
1133
{
1144
{
1134
#ifdef HAVE_STAT64
1145
#ifdef HAVE_STAT64
1135
	if (entering(tcp))
1146
	if (entering(tcp)) {
1136
		tprintf("%ld, ", tcp->u_arg[0]);
1147
		printdesc(tcp->pid, tcp->u_arg[0]);
1137
	else {
1148
		printargsep();
1149
	} else {
1138
		printstat64(tcp, tcp->u_arg[1]);
1150
		printstat64(tcp, tcp->u_arg[1]);
1139
	}
1151
	}
1140
	return 0;
1152
	return 0;
Lines 1148-1156 Link Here
1148
sys_oldfstat(tcp)
1160
sys_oldfstat(tcp)
1149
struct tcb *tcp;
1161
struct tcb *tcp;
1150
{
1162
{
1151
	if (entering(tcp))
1163
	if (entering(tcp)) {
1152
		tprintf("%ld, ", tcp->u_arg[0]);
1164
		printdesc(tcp->pid, tcp->u_arg[0]);
1153
	else {
1165
		printargsep();
1166
	} else {
1154
		printoldstat(tcp, tcp->u_arg[1]);
1167
		printoldstat(tcp, tcp->u_arg[1]);
1155
	}
1168
	}
1156
	return 0;
1169
	return 0;
Lines 1230-1238 Link Here
1230
sys_fxstat(tcp)
1243
sys_fxstat(tcp)
1231
struct tcb *tcp;
1244
struct tcb *tcp;
1232
{
1245
{
1233
	if (entering(tcp))
1246
	if (entering(tcp)) {
1234
		tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
1247
		printdesc(tcp->pid, tcp->u_arg[0]);
1235
	else {
1248
		printargsep();
1249
		tprintf("%ld, ", tcp->u_arg[1]);
1250
	} else {
1236
#ifdef _STAT64_VER
1251
#ifdef _STAT64_VER
1237
		if (tcp->u_arg[0] == _STAT64_VER)
1252
		if (tcp->u_arg[0] == _STAT64_VER)
1238
			printstat64 (tcp, tcp->u_arg[2]);
1253
			printstat64 (tcp, tcp->u_arg[2]);
Lines 1344-1350 Link Here
1344
struct tcb *tcp;
1359
struct tcb *tcp;
1345
{
1360
{
1346
	if (entering(tcp)) {
1361
	if (entering(tcp)) {
1347
		tprintf("%ld, ", tcp->u_arg[0]);
1362
		printdesc(tcp->pid, tcp->u_arg[0]);
1363
		printargsep();
1348
		printxval(aclcmds, tcp->u_arg[1], "???ACL???");
1364
		printxval(aclcmds, tcp->u_arg[1], "???ACL???");
1349
		tprintf(", %ld", tcp->u_arg[2]);
1365
		tprintf(", %ld", tcp->u_arg[2]);
1350
		/*
1366
		/*
Lines 1521-1527 Link Here
1521
struct tcb *tcp;
1537
struct tcb *tcp;
1522
{
1538
{
1523
	if (entering(tcp)) {
1539
	if (entering(tcp)) {
1524
		tprintf("%lu, ", tcp->u_arg[0]);
1540
		printdesc(tcp->pid, tcp->u_arg[0]);
1541
		tprintf(", ");
1525
	} else {
1542
	} else {
1526
		printstatfs(tcp, tcp->u_arg[1]);
1543
		printstatfs(tcp, tcp->u_arg[1]);
1527
	}
1544
	}
Lines 1593-1599 Link Here
1593
struct tcb *tcp;
1610
struct tcb *tcp;
1594
{
1611
{
1595
	if (entering(tcp)) {
1612
	if (entering(tcp)) {
1596
		tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
1613
		printdesc(tcp->pid, tcp->u_arg[0]);
1614
		printargsep();
1615
		tprintf("%lu, ", tcp->u_arg[1]);
1597
	} else {
1616
	} else {
1598
		if (tcp->u_arg[1] == sizeof (struct statfs64))
1617
		if (tcp->u_arg[1] == sizeof (struct statfs64))
1599
			printstatfs64(tcp, tcp->u_arg[2]);
1618
			printstatfs64(tcp, tcp->u_arg[2]);
Lines 1720-1726 Link Here
1720
struct tcb *tcp;
1739
struct tcb *tcp;
1721
{
1740
{
1722
	if (entering(tcp)) {
1741
	if (entering(tcp)) {
1723
		tprintf("%ld", tcp->u_arg[0]);
1742
		printdesc(tcp->pid, tcp->u_arg[0]);
1724
	}
1743
	}
1725
	return 0;
1744
	return 0;
1726
}
1745
}
Lines 1740-1746 Link Here
1740
struct tcb *tcp;
1759
struct tcb *tcp;
1741
{
1760
{
1742
	if (entering(tcp)) {
1761
	if (entering(tcp)) {
1743
		tprintf("%ld", tcp->u_arg[0]);
1762
		printdesc(tcp->pid, tcp->u_arg[0]);
1744
	}
1763
	}
1745
	return 0;
1764
	return 0;
1746
}
1765
}
Lines 1848-1854 Link Here
1848
struct tcb *tcp;
1867
struct tcb *tcp;
1849
{
1868
{
1850
	if (entering(tcp)) {
1869
	if (entering(tcp)) {
1851
		tprintf("%ld, %#lo", tcp->u_arg[0], tcp->u_arg[1]);
1870
		printdesc(tcp->pid, tcp->u_arg[0]);
1871
		tprintf(", %#lo", tcp->u_arg[1]);
1852
	}
1872
	}
1853
	return 0;
1873
	return 0;
1854
}
1874
}
Lines 1948-1954 Link Here
1948
struct tcb *tcp;
1968
struct tcb *tcp;
1949
{
1969
{
1950
	if (entering(tcp)) {
1970
	if (entering(tcp)) {
1951
		tprintf("%ld", tcp->u_arg[0]);
1971
		printdesc(tcp->pid, tcp->u_arg[0]);
1952
	}
1972
	}
1953
	return 0;
1973
	return 0;
1954
}
1974
}
Lines 1981-1987 Link Here
1981
struct tcb *tcp;
2001
struct tcb *tcp;
1982
{
2002
{
1983
	if (entering(tcp)) {
2003
	if (entering(tcp)) {
1984
		tprintf("%lu, ", tcp->u_arg[0]);
2004
		printdesc(tcp->pid, tcp->u_arg[0]);
2005
		printargsep();
1985
	} else {
2006
	} else {
1986
		if (syserror(tcp) || tcp->u_rval == 0 || !verbose(tcp))
2007
		if (syserror(tcp) || tcp->u_rval == 0 || !verbose(tcp))
1987
			tprintf("%#lx", tcp->u_arg[1]);
2008
			tprintf("%#lx", tcp->u_arg[1]);
Lines 2020-2026 Link Here
2020
	char *buf;
2041
	char *buf;
2021
2042
2022
	if (entering(tcp)) {
2043
	if (entering(tcp)) {
2023
		tprintf("%lu, ", tcp->u_arg[0]);
2044
		printdesc(tcp->pid, tcp->u_arg[0]);
2045
		tprintf(", ");
2024
		return 0;
2046
		return 0;
2025
	}
2047
	}
2026
	if (syserror(tcp) || !verbose(tcp)) {
2048
	if (syserror(tcp) || !verbose(tcp)) {
Lines 2389-2395 Link Here
2389
struct tcb *tcp;
2411
struct tcb *tcp;
2390
{
2412
{
2391
    if (entering(tcp)) {
2413
    if (entering(tcp)) {
2392
	tprintf("%ld, ", tcp->u_arg[0]);
2414
	printdesc(tcp->pid, tcp->u_arg[0]);
2415
	printargsep();
2393
	printstr(tcp, tcp->u_arg[1], -1);
2416
	printstr(tcp, tcp->u_arg[1], -1);
2394
	print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
2417
	print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
2395
	tprintf(", ");
2418
	tprintf(", ");
Lines 2418-2424 Link Here
2418
struct tcb *tcp;
2441
struct tcb *tcp;
2419
{
2442
{
2420
    if (entering(tcp)) {
2443
    if (entering(tcp)) {
2421
	tprintf("%ld, ", tcp->u_arg[0]);
2444
	printdesc(tcp->pid, tcp->u_arg[0]);
2445
	printargsep();
2422
	printstr(tcp, tcp->u_arg[1], -1);
2446
	printstr(tcp, tcp->u_arg[1], -1);
2423
    } else {
2447
    } else {
2424
	print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
2448
	print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
Lines 2445-2451 Link Here
2445
struct tcb *tcp;
2469
struct tcb *tcp;
2446
{
2470
{
2447
    if (entering(tcp)) {
2471
    if (entering(tcp)) {
2448
	tprintf("%ld", tcp->u_arg[0]);
2472
	printdesc(tcp->pid, tcp->u_arg[0]);
2449
    } else {
2473
    } else {
2450
	/* XXX Print value in format */
2474
	/* XXX Print value in format */
2451
	tprintf(", %p, %lu", (void *) tcp->u_arg[1], tcp->u_arg[2]);
2475
	tprintf(", %p, %lu", (void *) tcp->u_arg[1], tcp->u_arg[2]);
Lines 2470-2476 Link Here
2470
struct tcb *tcp;
2494
struct tcb *tcp;
2471
{
2495
{
2472
    if (entering(tcp)) {
2496
    if (entering(tcp)) {
2473
	tprintf("%ld, ", tcp->u_arg[0]);
2497
	printdesc(tcp->pid, tcp->u_arg[0]);
2498
	printargsep();
2474
	printstr(tcp, tcp->u_arg[1], -1);
2499
	printstr(tcp, tcp->u_arg[1], -1);
2475
    }
2500
    }
2476
    return 0;
2501
    return 0;
(-)strace-4.5.8/io.c (-13 / +32 lines)
Lines 51-57 Link Here
51
struct tcb *tcp;
51
struct tcb *tcp;
52
{
52
{
53
	if (entering(tcp)) {
53
	if (entering(tcp)) {
54
		tprintf("%ld, ", tcp->u_arg[0]);
54
		printdesc(tcp->pid, tcp->u_arg[0]);
55
		tprintf(", ");
55
	} else {
56
	} else {
56
		if (syserror(tcp))
57
		if (syserror(tcp))
57
			tprintf("%#lx", tcp->u_arg[1]);
58
			tprintf("%#lx", tcp->u_arg[1]);
Lines 67-73 Link Here
67
struct tcb *tcp;
68
struct tcb *tcp;
68
{
69
{
69
	if (entering(tcp)) {
70
	if (entering(tcp)) {
70
		tprintf("%ld, ", tcp->u_arg[0]);
71
		printdesc(tcp->pid, tcp->u_arg[0]);
72
		tprintf(", ");
71
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
73
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
72
		tprintf(", %lu", tcp->u_arg[2]);
74
		tprintf(", %lu", tcp->u_arg[2]);
73
	}
75
	}
Lines 117-123 Link Here
117
struct tcb *tcp;
119
struct tcb *tcp;
118
{
120
{
119
	if (entering(tcp)) {
121
	if (entering(tcp)) {
120
		tprintf("%ld, ", tcp->u_arg[0]);
122
		printdesc(tcp->pid, tcp->u_arg[0]);
123
		tprintf(", ");
121
	} else {
124
	} else {
122
		if (syserror(tcp)) {
125
		if (syserror(tcp)) {
123
			tprintf("%#lx, %lu",
126
			tprintf("%#lx, %lu",
Lines 135-141 Link Here
135
struct tcb *tcp;
138
struct tcb *tcp;
136
{
139
{
137
	if (entering(tcp)) {
140
	if (entering(tcp)) {
138
		tprintf("%ld, ", tcp->u_arg[0]);
141
		printdesc(tcp->pid, tcp->u_arg[0]);
142
		tprintf(", ");
139
		tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
143
		tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
140
		tprintf(", %lu", tcp->u_arg[2]);
144
		tprintf(", %lu", tcp->u_arg[2]);
141
	}
145
	}
Lines 150-156 Link Here
150
struct tcb *tcp;
154
struct tcb *tcp;
151
{
155
{
152
	if (entering(tcp)) {
156
	if (entering(tcp)) {
153
		tprintf("%ld, ", tcp->u_arg[0]);
157
		printdesc(tcp->pid, tcp->u_arg[0]);
158
		tprintf(", ");
154
	} else {
159
	} else {
155
		if (syserror(tcp))
160
		if (syserror(tcp))
156
			tprintf("%#lx", tcp->u_arg[1]);
161
			tprintf("%#lx", tcp->u_arg[1]);
Lines 172-178 Link Here
172
struct tcb *tcp;
177
struct tcb *tcp;
173
{
178
{
174
	if (entering(tcp)) {
179
	if (entering(tcp)) {
175
		tprintf("%ld, ", tcp->u_arg[0]);
180
		printdesc(tcp->pid, tcp->u_arg[0]);
181
		tprintf(", ");
176
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
182
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
177
#if UNIXWARE
183
#if UNIXWARE
178
		/* off_t is signed int */
184
		/* off_t is signed int */
Lines 195-201 Link Here
195
struct tcb *tcp;
201
struct tcb *tcp;
196
{
202
{
197
	if (entering(tcp)) {
203
	if (entering(tcp)) {
198
		tprintf("%ld, %ld, %llu, %lu", tcp->u_arg[0], tcp->u_arg[1],
204
		printdesc(tcp->pid, tcp->u_arg[0]);
205
		printargsep();
206
		printdesc(tcp->pid, tcp->u_arg[1]);
207
		tprintf(", %llu, %lu", 
199
			LONG_LONG(tcp->u_arg[2], tcp->u_arg[3]),
208
			LONG_LONG(tcp->u_arg[2], tcp->u_arg[3]),
200
			tcp->u_arg[4]);
209
			tcp->u_arg[4]);
201
	} else {
210
	} else {
Lines 246-252 Link Here
246
struct tcb *tcp;
255
struct tcb *tcp;
247
{
256
{
248
	if (entering(tcp)) {
257
	if (entering(tcp)) {
249
		tprintf("%ld, ", tcp->u_arg[0]);
258
		printdesc(tcp->pid, tcp->u_arg[0]);
259
		printargsep();
250
	} else {
260
	} else {
251
		if (syserror(tcp))
261
		if (syserror(tcp))
252
			tprintf("%#lx", tcp->u_arg[1]);
262
			tprintf("%#lx", tcp->u_arg[1]);
Lines 264-270 Link Here
264
struct tcb *tcp;
274
struct tcb *tcp;
265
{
275
{
266
	if (entering(tcp)) {
276
	if (entering(tcp)) {
267
		tprintf("%ld, ", tcp->u_arg[0]);
277
		printdesc(tcp->pid, tcp->u_arg[0]);
278
		printargsep();
268
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
279
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
269
		ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
280
		ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
270
		tprintf(", %lu, %llu", tcp->u_arg[2],
281
		tprintf(", %lu, %llu", tcp->u_arg[2],
Lines 280-286 Link Here
280
	if (entering(tcp)) {
291
	if (entering(tcp)) {
281
		off_t offset;
292
		off_t offset;
282
293
283
		tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
294
		printdesc(tcp->pid, tcp->u_arg[0]);
295
		printargsep();
296
		printdesc(tcp->pid, tcp->u_arg[1]);
297
		printargsep();
284
		if (!tcp->u_arg[2])
298
		if (!tcp->u_arg[2])
285
			tprintf("NULL");
299
			tprintf("NULL");
286
		else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
300
		else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
Lines 299-305 Link Here
299
	if (entering(tcp)) {
313
	if (entering(tcp)) {
300
		loff_t offset;
314
		loff_t offset;
301
315
302
		tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
316
		printdesc(tcp->pid, tcp->u_arg[0]);
317
		printargsep();
318
		printdesc(tcp->pid, tcp->u_arg[1]);
319
		printargsep();
303
		if (!tcp->u_arg[2])
320
		if (!tcp->u_arg[2])
304
			tprintf("NULL");
321
			tprintf("NULL");
305
		else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
322
		else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
Lines 319-325 Link Here
319
struct tcb *tcp;
336
struct tcb *tcp;
320
{
337
{
321
	if (entering(tcp)) {
338
	if (entering(tcp)) {
322
		tprintf("%ld, ", tcp->u_arg[0]);
339
		printdesc(tcp->pid, tcp->u_arg[0]);
340
		printargsep();
323
	} else {
341
	} else {
324
		ALIGN64 (tcp, 3);
342
		ALIGN64 (tcp, 3);
325
		if (syserror(tcp))
343
		if (syserror(tcp))
Lines 338-344 Link Here
338
{
356
{
339
	if (entering(tcp)) {
357
	if (entering(tcp)) {
340
		ALIGN64 (tcp, 3);
358
		ALIGN64 (tcp, 3);
341
		tprintf("%ld, ", tcp->u_arg[0]);
359
		printdesc(tcp->pid, tcp->u_arg[0]);
360
		printargsep();
342
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
361
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
343
		tprintf(", %lu, %#llx", tcp->u_arg[2],
362
		tprintf(", %lu, %#llx", tcp->u_arg[2],
344
			LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
363
			LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
(-)strace-4.5.8/mem.c (-3 / +5 lines)
Lines 209-217 Link Here
209
		printflags(mmap_flags, u_arg[3]);
209
		printflags(mmap_flags, u_arg[3]);
210
#endif
210
#endif
211
		/* fd (is always int, not long) */
211
		/* fd (is always int, not long) */
212
		tprintf(", %d, ", (int)u_arg[4]);
212
		printargsep();
213
		printdesc(tcp->pid, u_arg[4]);
213
		/* offset */
214
		/* offset */
214
		tprintf("%#lx", u_arg[5]);
215
		tprintf(", %#lx", u_arg[5]);
215
	}
216
	}
216
	return RVAL_HEX;
217
	return RVAL_HEX;
217
}
218
}
Lines 310-316 Link Here
310
		printflags(mmap_flags, u_arg[3]);
311
		printflags(mmap_flags, u_arg[3]);
311
#endif
312
#endif
312
		/* fd */
313
		/* fd */
313
		tprintf(", %ld, ", u_arg[4]);
314
		printdesc(tcp->pid, u_arg[4]);
315
		printargsep();
314
		/* offset */
316
		/* offset */
315
		tprintf("%#llx", LONG_LONG(u_arg[5], u_arg[6]));
317
		tprintf("%#llx", LONG_LONG(u_arg[5], u_arg[6]));
316
	}
318
	}
(-)strace-4.5.8/net.c (-14 / +31 lines)
Lines 1221-1227 Link Here
1221
struct tcb *tcp;
1221
struct tcb *tcp;
1222
{
1222
{
1223
	if (entering(tcp)) {
1223
	if (entering(tcp)) {
1224
		tprintf("%ld, ", tcp->u_arg[0]);
1224
		printdesc(tcp->pid, tcp->u_arg[0]);
1225
		printargsep();
1225
		printsock(tcp, tcp->u_arg[1], tcp->u_arg[2]);
1226
		printsock(tcp, tcp->u_arg[1], tcp->u_arg[2]);
1226
		tprintf(", %lu", tcp->u_arg[2]);
1227
		tprintf(", %lu", tcp->u_arg[2]);
1227
	}
1228
	}
Lines 1240-1246 Link Here
1240
struct tcb *tcp;
1241
struct tcb *tcp;
1241
{
1242
{
1242
	if (entering(tcp)) {
1243
	if (entering(tcp)) {
1243
		tprintf("%ld, %lu", tcp->u_arg[0], tcp->u_arg[1]);
1244
  		printdesc(tcp->pid, tcp->u_arg[0]);
1245
		tprintf(", %lu", tcp->u_arg[1]);
1244
	}
1246
	}
1245
	return 0;
1247
	return 0;
1246
}
1248
}
Lines 1250-1256 Link Here
1250
struct tcb *tcp;
1252
struct tcb *tcp;
1251
{
1253
{
1252
	if (entering(tcp)) {
1254
	if (entering(tcp)) {
1253
		tprintf("%ld, ", tcp->u_arg[0]);
1255
  		printdesc(tcp->pid, tcp->u_arg[0]);
1256
		printargsep();
1254
	} else if (!tcp->u_arg[2])
1257
	} else if (!tcp->u_arg[2])
1255
		tprintf("%#lx, NULL", tcp->u_arg[1]);
1258
		tprintf("%#lx, NULL", tcp->u_arg[1]);
1256
	else {
1259
	else {
Lines 1270-1276 Link Here
1270
struct tcb *tcp;
1273
struct tcb *tcp;
1271
{
1274
{
1272
	if (entering(tcp)) {
1275
	if (entering(tcp)) {
1273
		tprintf("%ld, ", tcp->u_arg[0]);
1276
		printdesc(tcp->pid, tcp->u_arg[0]);
1277
		printargsep();
1274
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
1278
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
1275
		tprintf(", %lu, ", tcp->u_arg[2]);
1279
		tprintf(", %lu, ", tcp->u_arg[2]);
1276
		/* flags */
1280
		/* flags */
Lines 1285-1291 Link Here
1285
struct tcb *tcp;
1289
struct tcb *tcp;
1286
{
1290
{
1287
	if (entering(tcp)) {
1291
	if (entering(tcp)) {
1288
		tprintf("%ld, ", tcp->u_arg[0]);
1292
		printdesc(tcp->pid, tcp->u_arg[0]);
1293
		printargsep();
1289
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
1294
		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
1290
		tprintf(", %lu, ", tcp->u_arg[2]);
1295
		tprintf(", %lu, ", tcp->u_arg[2]);
1291
		/* flags */
1296
		/* flags */
Lines 1307-1313 Link Here
1307
struct tcb *tcp;
1312
struct tcb *tcp;
1308
{
1313
{
1309
	if (entering(tcp)) {
1314
	if (entering(tcp)) {
1310
		tprintf("%ld, ", tcp->u_arg[0]);
1315
		printdesc(tcp->pid, tcp->u_arg[0]);
1316
		printargsep();
1311
		printmsghdr(tcp, tcp->u_arg[1]);
1317
		printmsghdr(tcp, tcp->u_arg[1]);
1312
		/* flags */
1318
		/* flags */
1313
		tprintf(", ");
1319
		tprintf(", ");
Lines 1324-1330 Link Here
1324
struct tcb *tcp;
1330
struct tcb *tcp;
1325
{
1331
{
1326
	if (entering(tcp)) {
1332
	if (entering(tcp)) {
1327
		tprintf("%ld, ", tcp->u_arg[0]);
1333
		printdesc(tcp->pid, tcp->u_arg[0]);
1334
		printargsep();
1328
	} else {
1335
	} else {
1329
		if (syserror(tcp))
1336
		if (syserror(tcp))
1330
			tprintf("%#lx", tcp->u_arg[1]);
1337
			tprintf("%#lx", tcp->u_arg[1]);
Lines 1345-1351 Link Here
1345
	int fromlen;
1352
	int fromlen;
1346
1353
1347
	if (entering(tcp)) {
1354
	if (entering(tcp)) {
1348
		tprintf("%ld, ", tcp->u_arg[0]);
1355
		printdesc(tcp->pid, tcp->u_arg[0]);
1356
		printargsep();
1349
	} else {
1357
	} else {
1350
		if (syserror(tcp)) {
1358
		if (syserror(tcp)) {
1351
			tprintf("%#lx, %lu, %lu, %#lx, %#lx",
1359
			tprintf("%#lx, %lu, %lu, %#lx, %#lx",
Lines 1391-1397 Link Here
1391
struct tcb *tcp;
1399
struct tcb *tcp;
1392
{
1400
{
1393
	if (entering(tcp)) {
1401
	if (entering(tcp)) {
1394
		tprintf("%ld, ", tcp->u_arg[0]);
1402
		printdesc(tcp->pid, tcp->u_arg[0]);
1403
		printargsep();
1395
	} else {
1404
	} else {
1396
		if (syserror(tcp) || !verbose(tcp))
1405
		if (syserror(tcp) || !verbose(tcp))
1397
			tprintf("%#lx", tcp->u_arg[1]);
1406
			tprintf("%#lx", tcp->u_arg[1]);
Lines 1412-1418 Link Here
1412
struct tcb *tcp;
1421
struct tcb *tcp;
1413
{
1422
{
1414
	if (entering(tcp)) {
1423
	if (entering(tcp)) {
1415
		tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]);
1424
		printdesc(tcp->pid, tcp->u_arg[0]);
1425
		tprintf(", %ld", tcp->u_arg[1]);
1416
		switch (tcp->u_arg[1]) {
1426
		switch (tcp->u_arg[1]) {
1417
		case 0:
1427
		case 0:
1418
			tprintf("%s", " /* receive */");
1428
			tprintf("%s", " /* receive */");
Lines 1457-1464 Link Here
1457
		}
1467
		}
1458
		if (umoven(tcp, tcp->u_arg[0], sizeof fds, (char *) fds) < 0)
1468
		if (umoven(tcp, tcp->u_arg[0], sizeof fds, (char *) fds) < 0)
1459
			tprintf("[...]");
1469
			tprintf("[...]");
1460
		else
1470
		else {
1461
			tprintf("[%u, %u]", fds[0], fds[1]);
1471
 			tprintf("[");
1472
			printdesc(tcp->pid, fds[0]);
1473
			printargsep();
1474
			printdesc(tcp->pid, fds[1]);
1475
			tprintf("]");
1476
		}
1462
	}
1477
	}
1463
#elif defined(SPARC) || defined(SPARC64) || defined(SH) || defined(SVR4) || defined(FREEBSD) || defined(IA64)
1478
#elif defined(SPARC) || defined(SPARC64) || defined(SH) || defined(SVR4) || defined(FREEBSD) || defined(IA64)
1464
	if (exiting(tcp))
1479
	if (exiting(tcp))
Lines 1519-1525 Link Here
1519
struct tcb *tcp;
1534
struct tcb *tcp;
1520
{
1535
{
1521
	if (entering(tcp)) {
1536
	if (entering(tcp)) {
1522
		tprintf("%ld, ", tcp->u_arg[0]);
1537
		printdesc(tcp->pid, tcp->u_arg[0]);
1538
		printargsep();
1523
		printxval(socketlayers, tcp->u_arg[1], "SOL_???");
1539
		printxval(socketlayers, tcp->u_arg[1], "SOL_???");
1524
		tprintf (", ");
1540
		tprintf (", ");
1525
		switch (tcp->u_arg[1]) {
1541
		switch (tcp->u_arg[1]) {
Lines 1762-1768 Link Here
1762
struct tcb *tcp;
1778
struct tcb *tcp;
1763
{
1779
{
1764
	if (entering(tcp)) {
1780
	if (entering(tcp)) {
1765
		tprintf("%ld, ", tcp->u_arg[0]);
1781
		printdesc(tcp->pid, tcp->u_arg[0]);
1782
		printargsep();
1766
		printsockopt (tcp, tcp->u_arg[1], tcp->u_arg[2],
1783
		printsockopt (tcp, tcp->u_arg[1], tcp->u_arg[2],
1767
			      tcp->u_arg[3], tcp->u_arg[4]);
1784
			      tcp->u_arg[3], tcp->u_arg[4]);
1768
		tprintf(", %lu", tcp->u_arg[4]);
1785
		tprintf(", %lu", tcp->u_arg[4]);
(-)strace-4.5.8/process.c (-6 / +14 lines)
Lines 1394-1400 Link Here
1394
{
1394
{
1395
	if (entering(tcp)) {
1395
	if (entering(tcp)) {
1396
#ifndef SVR4
1396
#ifndef SVR4
1397
		tprintf("%lu", tcp->u_arg[0]);
1397
		printpid(tcp->u_arg[0]);
1398
#endif /* !SVR4 */
1398
#endif /* !SVR4 */
1399
	}
1399
	}
1400
	return 0;
1400
	return 0;
Lines 1405-1411 Link Here
1405
struct tcb *tcp;
1405
struct tcb *tcp;
1406
{
1406
{
1407
	if (entering(tcp)) {
1407
	if (entering(tcp)) {
1408
		tprintf("%lu", tcp->u_arg[0]);
1408
		printpid(tcp->u_arg[0]);
1409
	}
1409
	}
1410
	return 0;
1410
	return 0;
1411
}
1411
}
Lines 1422-1428 Link Here
1422
struct tcb *tcp;
1422
struct tcb *tcp;
1423
{
1423
{
1424
	if (entering(tcp)) {
1424
	if (entering(tcp)) {
1425
		tprintf("%lu", tcp->u_arg[0]);
1425
		printdesc(tcp->pid, tcp->u_arg[0]);
1426
	}
1426
	}
1427
	return 0;
1427
	return 0;
1428
}
1428
}
Lines 1432-1438 Link Here
1432
struct tcb *tcp;
1432
struct tcb *tcp;
1433
{
1433
{
1434
	if (entering(tcp)) {
1434
	if (entering(tcp)) {
1435
		tprintf("%lu, %lu", tcp->u_arg[0], tcp->u_arg[1]);
1435
		printpid(tcp->u_arg[0]);
1436
		printargsep();
1437
		printpid(tcp->u_arg[1]);
1436
	}
1438
	}
1437
	return 0;
1439
	return 0;
1438
}
1440
}
Lines 1594-1599 Link Here
1594
	printleader(tcp);
1596
	printleader(tcp);
1595
	tprintf("execve(");
1597
	tprintf("execve(");
1596
	string_quote(program);
1598
	string_quote(program);
1599
#if defined SELINUX
1600
	selinux_printpath(program);
1601
#endif
1597
	tprintf(", [");
1602
	tprintf(", [");
1598
	for (i = 0; argv[i] != NULL; i++) {
1603
	for (i = 0; argv[i] != NULL; i++) {
1599
		if (i != 0)
1604
		if (i != 0)
Lines 1840-1846 Link Here
1840
	int exited = 0;
1845
	int exited = 0;
1841
1846
1842
	if (entering(tcp)) {
1847
	if (entering(tcp)) {
1843
		tprintf("%ld, ", tcp->u_arg[0]);
1848
		printpid(tcp->u_arg[0]);
1849
		tprintf(", ");
1844
	} else {
1850
	} else {
1845
		/* status */
1851
		/* status */
1846
		if (!tcp->u_arg[1])
1852
		if (!tcp->u_arg[1])
Lines 2922-2928 Link Here
2922
			  "PT_???"
2928
			  "PT_???"
2923
#endif
2929
#endif
2924
			);
2930
			);
2925
		tprintf(", %lu, ", tcp->u_arg[1]);
2931
		printargsep();
2932
		printpid(tcp->u_arg[1]);
2933
		tprintf(", ");
2926
		addr = tcp->u_arg[2];
2934
		addr = tcp->u_arg[2];
2927
#ifndef FREEBSD
2935
#ifndef FREEBSD
2928
		if (tcp->u_arg[0] == PTRACE_PEEKUSER
2936
		if (tcp->u_arg[0] == PTRACE_PEEKUSER
(-)strace-4.5.8/signal.c (-1 / +2 lines)
Lines 1697-1703 Link Here
1697
struct tcb *tcp;
1697
struct tcb *tcp;
1698
{
1698
{
1699
	if (entering(tcp)) {
1699
	if (entering(tcp)) {
1700
		tprintf("%ld, %s", tcp->u_arg[0], signame(tcp->u_arg[1]));
1700
		printpid(tcp->u_arg[0]);
1701
		tprintf(", %s", signame(tcp->u_arg[1]));
1701
	}
1702
	}
1702
	return 0;
1703
	return 0;
1703
}
1704
}
(-)strace-4.5.8/strace.c (-1 / +17 lines)
Lines 160-165 Link Here
160
-u username -- run command as username handling setuid and/or setgid\n\
160
-u username -- run command as username handling setuid and/or setgid\n\
161
-E var=val -- put var=val in the environment for command\n\
161
-E var=val -- put var=val in the environment for command\n\
162
-E var -- remove var from the environment for command\n\
162
-E var -- remove var from the environment for command\n\
163
-X -- print SELinux specific information when possible\n\
163
" /* this is broken, so don't document it
164
" /* this is broken, so don't document it
164
-z -- print only succeeding syscalls\n\
165
-z -- print only succeeding syscalls\n\
165
  */
166
  */
Lines 176-181 Link Here
176
#endif /* MIPS */
177
#endif /* MIPS */
177
#endif /* SVR4 */
178
#endif /* SVR4 */
178
179
180
#if defined SELINUX
181
int selinux_enabled= 0;
182
#endif
183
179
int
184
int
180
main(argc, argv)
185
main(argc, argv)
181
int argc;
186
int argc;
Lines 206-212 Link Here
206
	set_sortby(DEFAULT_SORTBY);
211
	set_sortby(DEFAULT_SORTBY);
207
	set_personality(DEFAULT_PERSONALITY);
212
	set_personality(DEFAULT_PERSONALITY);
208
	while ((c = getopt(argc, argv,
213
	while ((c = getopt(argc, argv,
209
		"+cdfFhiqrtTvVxza:e:o:O:p:s:S:u:E:")) != EOF) {
214
		"+cdfFhiqrtTvVxXza:e:o:O:p:s:S:u:E:")) != EOF) {
210
		switch (c) {
215
		switch (c) {
211
		case 'c':
216
		case 'c':
212
			cflag++;
217
			cflag++;
Lines 299-304 Link Here
299
				exit(1);
304
				exit(1);
300
			}
305
			}
301
			break;
306
			break;
307
		case 'X':
308
#if defined SELINUX
309
			selinux_enabled = is_selinux_enabled();
310
			break;
311
#else
312
			fprintf(stderr, "SELinux support not available\n");
313
			exit(1);
314
#endif
302
		default:
315
		default:
303
			usage(stderr, 1);
316
			usage(stderr, 1);
304
			break;
317
			break;
Lines 2398-2403 Link Here
2398
printtrailer(tcp)
2411
printtrailer(tcp)
2399
struct tcb *tcp;
2412
struct tcb *tcp;
2400
{
2413
{
2414
#if defined SELINUX
2415
	selinux_printpid(tcp->pid);
2416
#endif
2401
	tprintf("\n");
2417
	tprintf("\n");
2402
	tcp_last = NULL;
2418
	tcp_last = NULL;
2403
}
2419
}
(-)strace-4.5.8/system.c (-1 / +2 lines)
Lines 598-604 Link Here
598
struct tcb *tcp;
598
struct tcb *tcp;
599
{
599
{
600
	if (entering(tcp)) {
600
	if (entering(tcp)) {
601
		tprintf("%lu, ", tcp->u_arg[0]);
601
		printdesc(tcp->pid, tcp->u_arg[0]);
602
		printargsep();
602
		printxval(pathconflimits, tcp->u_arg[1], "_PC_???");
603
		printxval(pathconflimits, tcp->u_arg[1], "_PC_???");
603
	}
604
	}
604
	return 0;
605
	return 0;
(-)strace-4.5.8/util.c (-1 / +85 lines)
Lines 374-381 Link Here
374
{
374
{
375
	if (umovestr(tcp, addr, MAXPATHLEN, path) < 0)
375
	if (umovestr(tcp, addr, MAXPATHLEN, path) < 0)
376
		tprintf("%#lx", addr);
376
		tprintf("%#lx", addr);
377
	else
377
	else {
378
		string_quote(path);
378
		string_quote(path);
379
#if defined SELINUX
380
		selinux_printpath(path);
381
#endif
382
	}
379
	return;
383
	return;
380
}
384
}
381
385
Lines 390-395 Link Here
390
	else {
394
	else {
391
		path[n] = '\0';
395
		path[n] = '\0';
392
		string_quote(path);
396
		string_quote(path);
397
#if defined SELINUX
398
		selinux_printpath(path);
399
#endif
393
	}
400
	}
394
}
401
}
395
402
Lines 2040-2042 Link Here
2040
}
2047
}
2041
2048
2042
#endif /* SUNOS4 */
2049
#endif /* SUNOS4 */
2050
2051
/* Additions to support SELinux */
2052
2053
#if defined SELINUX
2054
2055
static void 
2056
showcon(security_context_t *con, int rc)
2057
{
2058
	if (rc < 0)
2059
		tprintf(" <<\?\?\?>>");
2060
	else {
2061
		tprintf(" <<%s>>", *con);
2062
		freecon(*con);
2063
	}
2064
}
2065
2066
void selinux_printpid(long pid)
2067
{
2068
	if (selinux_enabled && pid >= 0) {
2069
		security_context_t con;
2070
		showcon(&con, getpidcon((pid_t)pid, &con));
2071
	}
2072
}
2073
2074
void selinux_printprevcon()
2075
{
2076
	if (selinux_enabled) {
2077
		security_context_t con;
2078
		showcon(&con, getprevcon(&con));
2079
	}
2080
}
2081
2082
void selinux_printexeccon()
2083
{
2084
	if (selinux_enabled) {
2085
		security_context_t con;
2086
		showcon(&con, getexeccon(&con));
2087
	}
2088
}
2089
2090
void selinux_printfscreatecon()
2091
{
2092
	if (selinux_enabled) {
2093
		security_context_t con;
2094
		showcon(&con, getfscreatecon(&con));
2095
	}
2096
}
2097
2098
void selinux_printpath(const char *path)
2099
{
2100
	if (selinux_enabled) {
2101
		security_context_t con;
2102
		showcon(&con, getfilecon(path, &con));
2103
	}
2104
}
2105
2106
void selinux_printlpath(const char *path)
2107
{
2108
	if (selinux_enabled) {
2109
		security_context_t con;
2110
		showcon(&con, lgetfilecon(path, &con));
2111
	}
2112
}
2113
2114
void selinux_printdesc(long pid, long desc)
2115
{
2116
#if defined LINUX
2117
	if (selinux_enabled && desc >= 0) {
2118
		security_context_t con;
2119
		char path[MAXPATHLEN];
2120
		sprintf(path, "/proc/%ld/fd/%ld", pid, desc);
2121
		showcon(&con, getfilecon(path, &con));
2122
	}
2123
#endif
2124
}
2125
2126
#endif
(-)strace-4.5.8/configure (-10 / +235 lines)
Lines 1-6 Link Here
1
#! /bin/sh
1
#! /bin/sh
2
# Guess values for system-dependent variables and create Makefiles.
2
# Guess values for system-dependent variables and create Makefiles.
3
# Generated by GNU Autoconf 2.59 for strace 4.5.8.
3
# Generated by GNU Autoconf 2.59 for strace 4.5.8X.
4
#
4
#
5
# Copyright (C) 2003 Free Software Foundation, Inc.
5
# Copyright (C) 2003 Free Software Foundation, Inc.
6
# This configure script is free software; the Free Software Foundation
6
# This configure script is free software; the Free Software Foundation
Lines 267-274 Link Here
267
# Identity of this package.
267
# Identity of this package.
268
PACKAGE_NAME='strace'
268
PACKAGE_NAME='strace'
269
PACKAGE_TARNAME='strace'
269
PACKAGE_TARNAME='strace'
270
PACKAGE_VERSION='4.5.8'
270
PACKAGE_VERSION='4.5.8X'
271
PACKAGE_STRING='strace 4.5.8'
271
PACKAGE_STRING='strace 4.5.8X'
272
PACKAGE_BUGREPORT=''
272
PACKAGE_BUGREPORT=''
273
273
274
ac_unique_file="strace.c"
274
ac_unique_file="strace.c"
Lines 778-784 Link Here
778
  # Omit some internal or obsolete options to make the list less imposing.
778
  # Omit some internal or obsolete options to make the list less imposing.
779
  # This message is too long to be a string in the A/UX 3.1 sh.
779
  # This message is too long to be a string in the A/UX 3.1 sh.
780
  cat <<_ACEOF
780
  cat <<_ACEOF
781
\`configure' configures strace 4.5.8 to adapt to many kinds of systems.
781
\`configure' configures strace 4.5.8X to adapt to many kinds of systems.
782
782
783
Usage: $0 [OPTION]... [VAR=VALUE]...
783
Usage: $0 [OPTION]... [VAR=VALUE]...
784
784
Lines 844-850 Link Here
844
844
845
if test -n "$ac_init_help"; then
845
if test -n "$ac_init_help"; then
846
  case $ac_init_help in
846
  case $ac_init_help in
847
     short | recursive ) echo "Configuration of strace 4.5.8:";;
847
     short | recursive ) echo "Configuration of strace 4.5.8X:";;
848
   esac
848
   esac
849
  cat <<\_ACEOF
849
  cat <<\_ACEOF
850
850
Lines 963-969 Link Here
963
test -n "$ac_init_help" && exit 0
963
test -n "$ac_init_help" && exit 0
964
if $ac_init_version; then
964
if $ac_init_version; then
965
  cat <<\_ACEOF
965
  cat <<\_ACEOF
966
strace configure 4.5.8
966
strace configure 4.5.8X
967
generated by GNU Autoconf 2.59
967
generated by GNU Autoconf 2.59
968
968
969
Copyright (C) 2003 Free Software Foundation, Inc.
969
Copyright (C) 2003 Free Software Foundation, Inc.
Lines 977-983 Link Here
977
This file contains any messages produced by compilers while
977
This file contains any messages produced by compilers while
978
running configure, to aid debugging if configure makes a mistake.
978
running configure, to aid debugging if configure makes a mistake.
979
979
980
It was created by strace $as_me 4.5.8, which was
980
It was created by strace $as_me 4.5.8X, which was
981
generated by GNU Autoconf 2.59.  Invocation command line was
981
generated by GNU Autoconf 2.59.  Invocation command line was
982
982
983
  $ $0 $@
983
  $ $0 $@
Lines 1615-1621 Link Here
1615
1615
1616
# Define the identity of the package.
1616
# Define the identity of the package.
1617
 PACKAGE='strace'
1617
 PACKAGE='strace'
1618
 VERSION='4.5.8'
1618
 VERSION='4.5.8X'
1619
1619
1620
1620
1621
cat >>confdefs.h <<_ACEOF
1621
cat >>confdefs.h <<_ACEOF
Lines 6616-6621 Link Here
6616
fi
6616
fi
6617
6617
6618
6618
6619
for ac_header in selinux/selinux.h
6620
do
6621
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
6622
if eval "test \"\${$as_ac_Header+set}\" = set"; then
6623
  echo "$as_me:$LINENO: checking for $ac_header" >&5
6624
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6625
if eval "test \"\${$as_ac_Header+set}\" = set"; then
6626
  echo $ECHO_N "(cached) $ECHO_C" >&6
6627
fi
6628
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6629
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6630
else
6631
  # Is the header compilable?
6632
echo "$as_me:$LINENO: checking $ac_header usability" >&5
6633
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6634
cat >conftest.$ac_ext <<_ACEOF
6635
/* confdefs.h.  */
6636
_ACEOF
6637
cat confdefs.h >>conftest.$ac_ext
6638
cat >>conftest.$ac_ext <<_ACEOF
6639
/* end confdefs.h.  */
6640
$ac_includes_default
6641
#include <$ac_header>
6642
_ACEOF
6643
rm -f conftest.$ac_objext
6644
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6645
  (eval $ac_compile) 2>conftest.er1
6646
  ac_status=$?
6647
  grep -v '^ *+' conftest.er1 >conftest.err
6648
  rm -f conftest.er1
6649
  cat conftest.err >&5
6650
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6651
  (exit $ac_status); } &&
6652
	 { ac_try='test -z "$ac_c_werror_flag"
6653
			 || test ! -s conftest.err'
6654
  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6655
  (eval $ac_try) 2>&5
6656
  ac_status=$?
6657
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6658
  (exit $ac_status); }; } &&
6659
	 { ac_try='test -s conftest.$ac_objext'
6660
  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6661
  (eval $ac_try) 2>&5
6662
  ac_status=$?
6663
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6664
  (exit $ac_status); }; }; then
6665
  ac_header_compiler=yes
6666
else
6667
  echo "$as_me: failed program was:" >&5
6668
sed 's/^/| /' conftest.$ac_ext >&5
6669
6670
ac_header_compiler=no
6671
fi
6672
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6673
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6674
echo "${ECHO_T}$ac_header_compiler" >&6
6675
6676
# Is the header present?
6677
echo "$as_me:$LINENO: checking $ac_header presence" >&5
6678
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6679
cat >conftest.$ac_ext <<_ACEOF
6680
/* confdefs.h.  */
6681
_ACEOF
6682
cat confdefs.h >>conftest.$ac_ext
6683
cat >>conftest.$ac_ext <<_ACEOF
6684
/* end confdefs.h.  */
6685
#include <$ac_header>
6686
_ACEOF
6687
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
6688
  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
6689
  ac_status=$?
6690
  grep -v '^ *+' conftest.er1 >conftest.err
6691
  rm -f conftest.er1
6692
  cat conftest.err >&5
6693
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6694
  (exit $ac_status); } >/dev/null; then
6695
  if test -s conftest.err; then
6696
    ac_cpp_err=$ac_c_preproc_warn_flag
6697
    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6698
  else
6699
    ac_cpp_err=
6700
  fi
6701
else
6702
  ac_cpp_err=yes
6703
fi
6704
if test -z "$ac_cpp_err"; then
6705
  ac_header_preproc=yes
6706
else
6707
  echo "$as_me: failed program was:" >&5
6708
sed 's/^/| /' conftest.$ac_ext >&5
6709
6710
  ac_header_preproc=no
6711
fi
6712
rm -f conftest.err conftest.$ac_ext
6713
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
6714
echo "${ECHO_T}$ac_header_preproc" >&6
6715
6716
# So?  What about this header?
6717
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
6718
  yes:no: )
6719
    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6720
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6721
    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
6722
echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
6723
    ac_header_preproc=yes
6724
    ;;
6725
  no:yes:* )
6726
    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6727
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6728
    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
6729
echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
6730
    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
6731
echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
6732
    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
6733
echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
6734
    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6735
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6736
    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
6737
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
6738
    (
6739
      cat <<\_ASBOX
6740
## --------------------------------- ##
6741
## Report this to the strace lists.  ##
6742
## --------------------------------- ##
6743
_ASBOX
6744
    ) |
6745
      sed "s/^/$as_me: WARNING:     /" >&2
6746
    ;;
6747
esac
6748
echo "$as_me:$LINENO: checking for $ac_header" >&5
6749
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
6750
if eval "test \"\${$as_ac_Header+set}\" = set"; then
6751
  echo $ECHO_N "(cached) $ECHO_C" >&6
6752
else
6753
  eval "$as_ac_Header=\$ac_header_preproc"
6754
fi
6755
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6756
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6757
6758
fi
6759
if test `eval echo '${'$as_ac_Header'}'` = yes; then
6760
  cat >>confdefs.h <<_ACEOF
6761
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
6762
_ACEOF
6763
6764
fi
6765
6766
done
6767
6768
6769
echo "$as_me:$LINENO: checking for is_selinux_enabled in -lselinux" >&5
6770
echo $ECHO_N "checking for is_selinux_enabled in -lselinux... $ECHO_C" >&6
6771
if test "${ac_cv_lib_selinux_is_selinux_enabled+set}" = set; then
6772
  echo $ECHO_N "(cached) $ECHO_C" >&6
6773
else
6774
  ac_check_lib_save_LIBS=$LIBS
6775
LIBS="-lselinux  $LIBS"
6776
cat >conftest.$ac_ext <<_ACEOF
6777
/* confdefs.h.  */
6778
_ACEOF
6779
cat confdefs.h >>conftest.$ac_ext
6780
cat >>conftest.$ac_ext <<_ACEOF
6781
/* end confdefs.h.  */
6782
6783
/* Override any gcc2 internal prototype to avoid an error.  */
6784
#ifdef __cplusplus
6785
extern "C"
6786
#endif
6787
/* We use char because int might match the return type of a gcc2
6788
   builtin and then its argument prototype would still apply.  */
6789
char is_selinux_enabled ();
6790
int
6791
main ()
6792
{
6793
is_selinux_enabled ();
6794
  ;
6795
  return 0;
6796
}
6797
_ACEOF
6798
rm -f conftest.$ac_objext conftest$ac_exeext
6799
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6800
  (eval $ac_link) 2>conftest.er1
6801
  ac_status=$?
6802
  grep -v '^ *+' conftest.er1 >conftest.err
6803
  rm -f conftest.er1
6804
  cat conftest.err >&5
6805
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6806
  (exit $ac_status); } &&
6807
	 { ac_try='test -z "$ac_c_werror_flag"
6808
			 || test ! -s conftest.err'
6809
  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6810
  (eval $ac_try) 2>&5
6811
  ac_status=$?
6812
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6813
  (exit $ac_status); }; } &&
6814
	 { ac_try='test -s conftest$ac_exeext'
6815
  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6816
  (eval $ac_try) 2>&5
6817
  ac_status=$?
6818
  echo "$as_me:$LINENO: \$? = $ac_status" >&5
6819
  (exit $ac_status); }; }; then
6820
  ac_cv_lib_selinux_is_selinux_enabled=yes
6821
else
6822
  echo "$as_me: failed program was:" >&5
6823
sed 's/^/| /' conftest.$ac_ext >&5
6824
6825
ac_cv_lib_selinux_is_selinux_enabled=no
6826
fi
6827
rm -f conftest.err conftest.$ac_objext \
6828
      conftest$ac_exeext conftest.$ac_ext
6829
LIBS=$ac_check_lib_save_LIBS
6830
fi
6831
echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
6832
echo "${ECHO_T}$ac_cv_lib_selinux_is_selinux_enabled" >&6
6833
if test $ac_cv_lib_selinux_is_selinux_enabled = yes; then
6834
  cat >>confdefs.h <<_ACEOF
6835
#define HAVE_LIBSELINUX 1
6836
_ACEOF
6837
6838
  LIBS="-lselinux $LIBS"
6839
6840
fi
6841
6842
6843
6619
6844
6620
6845
6621
6846
Lines 8660-8666 Link Here
8660
} >&5
8885
} >&5
8661
cat >&5 <<_CSEOF
8886
cat >&5 <<_CSEOF
8662
8887
8663
This file was extended by strace $as_me 4.5.8, which was
8888
This file was extended by strace $as_me 4.5.8X, which was
8664
generated by GNU Autoconf 2.59.  Invocation command line was
8889
generated by GNU Autoconf 2.59.  Invocation command line was
8665
8890
8666
  CONFIG_FILES    = $CONFIG_FILES
8891
  CONFIG_FILES    = $CONFIG_FILES
Lines 8723-8729 Link Here
8723
8948
8724
cat >>$CONFIG_STATUS <<_ACEOF
8949
cat >>$CONFIG_STATUS <<_ACEOF
8725
ac_cs_version="\\
8950
ac_cs_version="\\
8726
strace config.status 4.5.8
8951
strace config.status 4.5.8X
8727
configured by $0, generated by GNU Autoconf 2.59,
8952
configured by $0, generated by GNU Autoconf 2.59,
8728
  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
8953
  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
8729
8954
(-)strace-4.5.8/config.h.in (+6 lines)
Lines 56-61 Link Here
56
/* Define to 1 if you have the `nsl' library (-lnsl). */
56
/* Define to 1 if you have the `nsl' library (-lnsl). */
57
#undef HAVE_LIBNSL
57
#undef HAVE_LIBNSL
58
58
59
/* Define to 1 if you have the `selinux' library (-lselinux). */
60
#undef HAVE_LIBSELINUX
61
59
/* Define to 1 if you have the <linux/icmp.h> header file. */
62
/* Define to 1 if you have the <linux/icmp.h> header file. */
60
#undef HAVE_LINUX_ICMP_H
63
#undef HAVE_LINUX_ICMP_H
61
64
Lines 125-130 Link Here
125
   */
128
   */
126
#undef HAVE_PR_SYSCALL
129
#undef HAVE_PR_SYSCALL
127
130
131
/* Define to 1 if you have the <selinux/selinux.h> header file. */
132
#undef HAVE_SELINUX_SELINUX_H
133
128
/* Define to 1 if you have the `sendmsg' function. */
134
/* Define to 1 if you have the `sendmsg' function. */
129
#undef HAVE_SENDMSG
135
#undef HAVE_SENDMSG
130
136

Return to bug 71696