+2006-12-10 Dmitry V. Levin <ldv@altlinux.org>
+
+ Add biarch support for "struct iovec".
+ * defs.h (personality_wordsize): Add.
+ * io.c [HAVE_SYS_UIO_H] (tprint_iov): [LINUX &&
+ SUPPORTED_PERSONALITIES > 1] Handle 32-bit personality.
+ * util.c [HAVE_SYS_UIO_H] (dumpiov): [LINUX &&
+ SUPPORTED_PERSONALITIES > 1] Likewise.
+ Patch from Jakub Jelinek.
+ Fixes RH#218433.
+
+ * time.c (sys_timer_create): Check umove() return code.
+
+ Make several global variables static.
+ #ifdef definitions of rarely unused functions.
+ * defs.h (rflag, tflag, outfname): Remove.
+ * strace.c (iflag, interactive, pflag_seen, rflag, tflag,
+ outfname, username): Make static.
+ * desc.c (sys_getdtablesize): Define only for
+ ALPHA || FREEBSD || SUNOS4.
+ * file.c (sys_fchroot): Define only for SUNOS4 || SVR4.
+ (sys_mkfifo): Define only for FREEBSD.
+ * mem.c (sys_sbrk): Define only for FREEBSD || SUNOS4.
+ (sys_getpagesize): Define only for
+ ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4.
+ * net.c (sys_so_socket): Define only for SVR4.
+ * process.c (sys_gethostid): Define only for
+ FREEBSD || SUNOS4 || SVR4.
+ (sys_gethostname): Define only for
+ ALPHA || FREEBSD || SUNOS4 || SVR4.
+ (sys_setpgrp): Define only for ALPHA || SUNOS4 || SVR4.
+ (sys_execv): Define only for SPARC || SPARC64 || SUNOS4.
+ * signal.c (sys_sigblock): Define only for FREEBSD || SUNOS4.
+ (sys_sighold, sys_sigwait): Define only for SVR4.
+ (sys_killpg): Define only for FREEBSD || SUNOS4.
+ * stream.c (sys_getmsg): Define only for
+ SPARC || SPARC64 || SUNOS4 || SVR4.
+ * syscall.c (sys_indir): Define only for SUNOS4.
+
+2006-11-27 Dmitry V. Levin <ldv@altlinux.org>
+
+ * system.c [LINUX]: Define CTL_PROC, since Linux 2.6.18+ headers
+ removed CTL_PROC enum. Patch from Jakub Jelinek.
+ [LINUX] (sysctl_root): Add CTL_BUS, CTL_ABI and CTL_CPU.
+
+2006-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ * linux/ia64/syscallent.h: Add #if check to make sure that
+ SYS_socket_subcall adjustment isn't forgotten again.
+
+2006-10-16 Dmitry V. Levin <ldv@altlinux.org>
+
+ Implement comprehensive quotactl(2) parser for Linux.
+ * Makefile.am (strace_SOURCES): Add quota.c.
+ * quota.c: New file.
+ * resource.c: Remove old quotactl(2) parser.
+ Fixes RH#118696.
+
+2006-10-14 Dmitry V. Levin <ldv@altlinux.org>
+
+ * configure.ac(AC_CHECK_HEADERS): Add inttypes.h.
+ * file.c [_LFS64_LARGEFILE && (LINUX || SVR4)]:
+ Include <inttypes.h>.
+ (sys_getdents64): Use PRIu64/PRId64 to avoid gcc warnings on
+ 64-bit platforms.
+
+ * strace.c (main): Check getcwd() return code.
+
+2006-10-13 Ulrich Drepper <drepper@redhat.com>
+ Bernhard Kaindl <bk@suse.de>
+ Dmitry V. Levin <ldv@altlinux.org>
+ Michael Holzheu <holzheu@de.ibm.com>
+
+ Add hooks for new syscalls. Add decoders for *at, inotify*,
+ pselect6, ppoll and unshare syscalls.
+
+ * defs.h: Declare print_sigset.
+ * desc.c (sys_pselect6): New function.
+ * file.c (decode_open, decode_access, decode_mkdir,
+ decode_readlink, decode_chmod, decode_utimes, decode_mknod):
+ New functions.
+ (sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod,
+ sys_utimes, sys_mknod): Use them.
+ [LINUX] (fstatatflags, unlinkatflags, inotify_modes): New
+ variables.
+ [LINUX] (print_dirfd, sys_openat, sys_faccessat,
+ sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat,
+ sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat,
+ sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch,
+ sys_inotify_rm_watch): New functions.
+ * process.c [LINUX] (sys_unshare): New function.
+ * signal.c (print_sigset): New function.
+ (sys_sigprocmask): Use it.
+ * stream.c (decode_poll): New function.
+ (sys_poll): Use it.
+ [LINUX] (sys_ppoll): New function.
+ * linux/syscall.h: Delcare new syscall handlers.
+ * linux/syscallent.h: Hook up new syscalls.
+ * linux/alpha/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/sparc64/syscallent.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ Fixes RH#178633.
+
+2006-10-06 Dmitry V. Levin <ldv@altlinux.org>
+
+ * strace.c [!USE_PROCFS] (trace): Presence of PT_GETSIGINFO
+ macro does not mean that PT_CR_IPSR and PT_CR_IIP macros are
+ also defined, so check them along with PT_GETSIGINFO.
+ Fixes RH#209856.
+
+2006-09-01 Dmitry V. Levin <ldv@altlinux.org>
+
+ * file.c (print_xattr_val): Fix memory corruption bug reported
+ by James Antill.
+ Fixes RH#200621.
+
+2006-04-21 Dmitry V. Levin <ldv@altlinux.org>
+
+ * defs.h [LINUX && X86_64 && !__NR_exit_group]: Define
+ __NR_exit_group.
+
+2006-03-29 Dmitry V. Levin <ldv@altlinux.org>
+
+ Fix race conditions in tcb allocation.
+ * process.c (fork_tcb): Return error code as documented. Do not
+ print "tcb table full" error message.
+ [USE_PROCFS] (internal_fork): Do not print "tcb table full"
+ error message.
+ [SYS_clone || SYS_clone2] (internal_clone, internal_fork): Call
+ fork_tcb() before alloctcb(). Do not print "tcb table full"
+ error message.
+ * strace.c (main): Do not print "tcb table full" error message.
+ (expand_tcbtab): Print error message in case of memory allocation
+ failure.
+ (alloctcb): Print error message when tcb table is full.
+ (trace): Expand tcb table if necessary prior to allocating
+ entry there. Do not print "tcb table full" error message.
+ Fixes RH#180293.
+
+2006-08-22 Roland McGrath <roland@redhat.com>
+
+ * ipc.c (sys_msgget, sys_semget, sys_shmget): Show key values in hex.
+ Fixes RH#198179.
+
+2006-08-21 Roland McGrath <roland@redhat.com>
+
+ * linux/syscall.h (SYS_socket_subcall): Bump to 400.
+ * linux/syscallent.h: Update table.
+ * linux/arm/syscallent.h: Likewise.
+ * linux/m68k/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/sh/syscallent.h: Likewise.
+ * linux/sh64/syscallent.h: Likewise.
+ Fixes RH#201462.
+
+2006-04-25 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Fail when -c is given with -ff.
+ * strace.1: Note their incompatibility.
+ Fixes RH#187847.
+
+ * strace.c (main): Fail when nonoption args follow -p switches.
+ Fixes Debian#361302.
+
+ * Makefile.am (EXTRA_DIST): Add xlate.el.
+
+ * linux/mips/Makefile.in: File removed, unused cruft.
+ * linux/sparc/Makefile.in: Likewise.
+
+ * strace.spec (Source0): Use http://dl.sourceforge.net URL.
+
+ * ipc.c (sys_semtimedop): Fixed inverted indirect_ipccall test.
+ * linux/hppa/syscallent.h: Fixed semtimedop entry.
+ From Mike Stroyan <mike.stroyan@hp.com>.
+ Fixes Debian#340239.
+
+2006-03-30 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * linux/arm/syscallent.h: Correct the name of exit. Remove
+ M68K conditionals and sys_security. Correct syscalls 243-282.
+ Fixes Debian#360154.
+
+ * process.c (change_syscall): Add ARM support.
+ * syscall.c (get_scno): Handle ARM EABI.
+ Fixes Debian#360152.
+
+2006-01-16 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.14.
+ * debian/changelog, strace.spec: 4.5.14-1.
+
+2006-01-13 Roland McGrath <roland@redhat.com>
+
+ * debian/control (Build-Depends): Add debhelper.
+
+2006-01-12 Roland McGrath <roland@redhat.com>
+
+ * signal.c [LINUX] (sys_restart_syscall): New function.
+ * linux/syscall.h: Declare sys_restart_syscall.
+ * linux/sparc/syscall.h: Likewise.
+ * linux/syscallent.h: Call 0 is restart_syscall.
+ * linux/arm/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/m68k/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+ * linux/sh/syscallent.h: Likewise.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/sparc64/syscallent.h: Likewise.
+ * linux/alpha/syscallent.h: Use sys_restart_syscall.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ Fixes RH#165469.
+
+2005-08-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ * system.c [LINUX] (MS_MGC_VAL): New macro.
+ [LINUX] (mount_flags): Add it.
+ [LINUX] (sys_mount): If neither MS_BIND nor MS_MOVE bits are
+ set in the flags argument, try to fetch data string.
+ Fixes RH#165377.
+
+2006-01-12 Roland McGrath <roland@redhat.com>
+
+ * system.c (sys_sysctl): Don't read off end of NAME when max_strlen
+ exceeds INFO.nlen.
+ From Timo Lindfors <timo.lindfors@iki.fi>.
+ Fixes Debian#339117.
+
+ * debian/rules (binary-arch): Don't pass -s to install. Use dh_strip.
+ Fixes Debian#325132.
+
+ * debian/control (Standards-Version): Update to 3.6.2.
+
+ * defs.h [LINUXSPARC] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE):
+ New macros.
+ [SPARC64] (PERSONALITY2_WORDSIZE): New macro.
+ [X86_64] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE): New macros.
+ * syscall.c (PERSONALITY0_WORDSIZE): New macro if undefined.
+ (personality_wordsize): New variable.
+ (decode_subcall): Use it for size of argument words.
+ Fixes RH#174354.
+
+2005-11-17 Dmitry V. Levin <ldv@altlinux.org>
+
+ Implement qual_flags support for each personality.
+ * strace.c (main): Move qualify calls after set_personality call.
+ * syscall.c (qual_flags0): New variable..
+ [SUPPORTED_PERSONALITIES >= 2] (qual_flags1): New variable.
+ [SUPPORTED_PERSONALITIES >= 3] (qual_flags2): New variable.
+ (qual_flags): Change variable definition from array to pointer.
+ (set_personality): Initialize qual_flags variable.
+ (qualify_one): Add "pers" argument to specify personality.
+ [SUPPORTED_PERSONALITIES >= 2]: Set qual_flags1 if requested.
+ [SUPPORTED_PERSONALITIES >= 3]: Set qual_flags2 if requested.
+ (qual_syscall): Pass personality to qualify_one.
+ [SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1
+ table.
+ [SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2
+ table.
+ (qual_signal): Pass personality to qualify_one.
+ (qual_desc): Likewise.
+ (qualify): Use qualify_one instead of manual qual_flags
+ manipulations.
+ [SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1
+ table.
+ [SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2
+ table.
+ * defs.h: Update qual_flags declaration.
+ Fixes RH#173986.
+
+2005-11-14 Dmitry V. Levin <ldv@altlinux.org>
+
+ * syscall.c (qual_syscall): Handle numeric syscall specification.
+ Fixes RH#174798.
+
+ * syscall.c (qual_signal, qual_options): Remove redundant argument
+ check.
+
+2005-12-01 Roland McGrath <roland@redhat.com>
+
+ * ipc.c (indirect_ipccall) [MIPS || HPPA]: Return false.
+ Fixes Debian#340239.
+
+ * Makefile.am (EXTRA_DIST): Add linux/arm/syscallent.h
+ and linux/m68k/syscallent.h.
+ Fixes Debian#336197.
+
+ * debian/control (Architecture): Add armeb.
+ Fixes Debian#335681.
+
+2005-11-02 Michal Marek <mmarek@suse.cz>
+
+ * strace-graph (handle_trace): follow clone() and vfork() calls.
+
+2005-10-25 Heiko Carstens <heiko.carstens@de.ibm.com>
+
+ * linux/s390/syscallent.h: Added ioprio_set, ioprio_get,
+ inotify_init, inotify_add_watch, inotify_rm_watch.
+ Corrected number of arguments for request_key.
+ * linux/s390x/syscallent.h: Likewise.
+
+2005-12-01 Roland McGrath <roland@redhat.com>
+
+ * ipc.c (indirect_ipccall) [IA64]: Return false unless the syscall
+ number is in the low range of IA32 syscalls.
+
+2005-10-07 Andreas Schwab <schwab@suse.de>
+
+ * linux/ia64/syscallent.h: Syscall 1105 is gettid, not ioperm.
+
+2005-12-01 Roland McGrath <roland@redhat.com>
+
+ * resource.c (resources): Add RLIMIT_NICE, RLIMIT_RTPRIO.
+ Reported by Scott Tsai <scottt958@yahoo.com.tw>.
+
+ * ipc.c (indirect_ipccall): New function.
+ (sys_msgctl, sys_msgsnd, sys_msgrcv, sys_semop): Use that predicate
+ instead of #ifdef LINUX test.
+ [LINUX] (sys_semtimedop): Likewise.
+ (sys_shmctl, sys_shmat, sys_shmdt): Likewise.
+ Fixes RH#164755.
+
+2005-07-31 Ulrich Drepper <drepper@redhat.com>
+
+ * linux/x86_64/syscallent.h: Fix syscall parameter count for msgrcv and
+ msgctl.
+
+ * ipc.c (sys_msgrcv): Add entering handling and print first parameter
+ there.
+ Fixes RH#164757.
+
+2005-08-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ * strace.1: Update "SEE ALSO" links to reference to valid
+ manpages.
+ Patch from Michail Litvak <mci@owl.openwall.com>.
+ Fixes RH#165375.
+
+2005-10-21 Roland McGrath <roland@redhat.com>
+
+ * util.c (printpathn): Cap N at sizeof path - 1.
+
+2005-08-03 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.13.
+ * debian/changelog, strace.spec: 4.5.13-1.
+
+ * configure.ac: Check for struct dqblk.dqb_curblocks field.
+ * resource.c [LINUX] (OLD_CMD): New macro.
+ (quotacmds): Use it to hard-wire old O_* values, don't use macros.
+ (sys_quotactl): If dqb_curblocks is not there, it's called
+ dqb_curspace instead. Print dqb_* fields as unsigned long long.
+
+2005-07-19 Michael Schmitz <schmitz@debian.org>
+
+ Long overdue m68k cleanup.
+ * linux/syscallent.h: remove m68k declarations.
+ * linux/m68k/syscallent.h: new file, fixed up declarations
+ to match kernel version 2.6.11. Newer syscalls are sufficiently
+ different from i386 to merit a separate file.
+
+2005-08-03 Roland McGrath <roland@redhat.com>
+
+ * linux/x86_64/syscallent.h: Update init_module argument count.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/sparc64/syscallent2.h: Likewise.
+ * linux/sparc64/syscallent.h: Likewise.
+ * linux/sh/syscallent.h: Likewise.
+ * linux/sh64/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/arm/syscallent.h: Likewise.
+
+2005-07-22 James Lentini <jlentini@gmail.com>
+
+ * bjm.c (sys_init_module): Display all three arguments.
+ * linux/syscallent.h: Update argument count.
+
+2005-08-03 Roland McGrath <roland@redhat.com>
+
+ * process.c (internal_wait): Don't suspend when known child is known
+ to be exiting already.
+
+ * strace.c (detach): If detaching the last live thread in a group with
+ a zombie leader, then detach the leader too.
+ (handle_group_exit): Use detach, not droptcb, for predeceased thread.
+ Mark process about to take a signal with TCB_GROUP_EXITING flag.
+ Fixes RH#161919.
+
+2005-07-19 Roland McGrath <roland@redhat.com>
+
+ * defs.h [LINUX] [M68K] (__NR_exit_group): Define it if missing.
+ Fixes Debian#315500.
+
+2005-07-14 Heiko Carstens <heiko.carstens@de.ibm.com>
+
+ * linux/s390/syscallent.h (sys_tgkill, vserver, fadvise64_64)
+ (statfs64, fstatfs64, remap_file_pages, mbind, get_mempolicy)
+ (set_mempolicy, mq_open, mq_unlink, mq_timedsend, mq_timedreceive)
+ (mq_notify, mq_getsetattr, sys_kexec_load, add_key, request_key)
+ (keyctl, waitid): Added.
+ * linux/s390x/syscallent.h: Likewise and added missing _llseek.
+ * linux/s390/errnoent.h (ECANCELED, ENOKEY, EKEYEXPIRED)
+ (EKEYREVOKED, EKEYREJECTED, EOWNERDEAD, ENOTRECOVERABLE): Added.
+ * linux/s390x/errnoent.h: Likewise.
+
+2005-07-05 Roland McGrath <roland@redhat.com>
+
+ * mem.c [LINUX] (sys_old_mmap) [X86_64]: Extract 32-bit values if
+ child is 32-bit.
+ Fixes RH#162467.
+
+2005-06-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ Introduce "-e trace=desc".
+ * defs.h (TRACE_DESC): New flag.
+ * syscall.c: Define TD macro before include of syscallent files
+ and undefine it afterwards.
+ (lookup_class): Recognize "desc" keyword.
+ * strace.1: Document "-e trace=desc".
+ * freebsd/i386/syscallent.h: Mark those syscalls which take a
+ file descriptor as an argument or return a file descriptor with
+ TD flag.
+ * linux/alpha/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/sh/syscallent.h: Likewise.
+ * linux/sh64/syscallent.h: Likewise.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/sparc64/syscallent2.h: Likewise.
+ * linux/sparc64/syscallent.h: Likewise.
+ * linux/syscallent.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ * sunos4/syscallent.h: Likewise.
+ * svr4/syscallent.h: Likewise.
+ Fixes RH#159400.
+
+ Remove TF flag from those syscalls which have no filename argument.
+ * freebsd/i386/syscallent.h: Remove TF flag from fstat, pread,
+ pwrite, fstat, sendfile.
+ * linux/alpha/syscallent.h: Remove TF flag from read, write,
+ pread, pwrite, sendfile.
+ * linux/hppa/syscallent.h: Remove TF flag from read, write,
+ pread, pwrite, fstat64, sendfile, ftruncate64.
+ * linux/ia64/syscallent.h: Remove TF flag from read, write,
+ sendfile, fstat, fadvise64.
+ * linux/mips/syscallent.h: Remove TF flag from read, write,
+ fstatfs, fstat, pread, pwrite, sendfile, ftruncate64, fstat64,
+ sendfile64, fadvise64, fstatfs64.
+ * linux/powerpc/syscallent.h: Remove TF flag from read, write,
+ fstat, pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64,
+ fadvise64, fstatfs64, fadvise64_64.
+ * linux/s390/syscallent.h: Remove TF flag from pread, pwrite,
+ sendfile, ftruncate64, fstat64, sendfile64.
+ * linux/s390x/syscallent.h: Remove TF flag from pread, pwrite,
+ sendfile, sendfile64.
+ * linux/sh/syscallent.h: Remove TF flag from pread, pwrite,
+ sendfile, fstat64.
+ * linux/sh64/syscallent.h: Remove TF flag from pread, pwrite,
+ sendfile, ftruncate64, fstat64.
+ * linux/sparc/syscallent.h: Remove TF flag from sendfile, fstat64,
+ pread, pwrite, sendfile64.
+ * linux/sparc64/syscallent2.h: Likewise.
+ * linux/sparc64/syscallent.h: Likewise.
+ * linux/syscallent.h: Remove TF flag from pread, pwrite, sendfile,
+ ftruncate64, fstat64, sendfile64, fadvise64, fadvise64, fstatfs64,
+ fadvise64_64.
+ * linux/x86_64/syscallent.h: Remove TF flag from pread, pwrite,
+ sendfile, fadvise64_64.
+ * svr4/syscallent.h: Remove TF flag from pread, pwrite, ftruncate,
+ fstatvfs64, ftruncate64.
+ Fixes RH#159340.
+
+2005-07-04 Roland McGrath <roland@redhat.com>
+
+ * net.c (sockipv6options): Add IPV6_ADD_MEMBERSHIP,
+ IPV6_DROP_MEMBERSHIP, IPV6_ROUTER_ALERT.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#162450.
+
+ * net.c (sockipoptions): Fix typos.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#161578.
+
+ * util.c (printnum_int): New function, printnum with s/long/int/.
+ * defs.h: Declare it.
+ * net.c (printsockopt): Use it for int-sized option.
+ Fixes RH#162449.
+ Reported by Ulrich Drepper <drepper@redhat.com>.
+
+2005-06-09 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.12.
+ * debian/changelog, strace.spec: 4.5.12-1.
+
+2005-06-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ Minor namespace cleanup.
+ * defs.h (string_quote): Remove declaration.
+ * file.c (openmodessol) [LINUXSPARC]: Make static.
+ (fileflags): Likewise.
+ (aclcmds, aclipc) [HAVE_SYS_ACL_H]: Likewise.
+ (direnttypes) [FREEBSD || LINUX]: Likewise.
+ (xattrflags): Likewise.
+ * process.c (unalignctl_string): Make static.
+ (setarg): Disable.
+ * syscall.c (subcalls_table): Make static.
+ (socket_map) [!(LINUX && (ALPHA || MIPS))]: Likewise.
+ (sparc_socket_decode): Make static, define for [SPARC || SPARC64] only.
+ (decode_subcall): Make static.
+ (syscall_fixup): Likewise.
+ (get_error): Likewise.
+ (syscall_enter): Likewise.
+ * util.c (tv_tv): Disable.
+ (getpc): Likewise.
+ (string_quote): Make static.
+ Fixes RH#159688.
+
+2005-05-12 Philippe De Muyter <phdm@macqel.be>
+
+ * util.c (getpc, printcall): Check #if defined(M68K), not M68k.
+ Enables `-i' on m68k machines.
+
+2005-06-06 Roland McGrath <roland@redhat.com>
+
+ * process.c (struct_user_offsets) [X86_64]: Reorder elements so
+ matching works right.
+ Fixes RH#159787.
+
+ * linux/syscall.h (SYS_socket, SYS_bind, SYS_connect, SYS_listen)
+ (SYS_accept, SYS_getsockname, SYS_getpeername, SYS_socketpair)
+ (SYS_send, SYS_recv, SYS_sendto, SYS_recvfrom, SYS_shutdown)
+ (SYS_setsockopt, SYS_getsockopt, SYS_sendmsg, SYS_recvmsg)
+ (SYS_getsockname, SYS_semop, SYS_semgsub_et, SYS_semget, SYS_semctl)
+ (SYS_semtimedop, SYS_msgsnd, SYS_msgrcv, SYS_msgget)
+ (SYS_msgctl, SYS_shmat, SYS_shmdt, SYS_shmget)
+ (SYS_shmctl): Macros renamed to SYS_sub_*.
+ * syscall.c (dumpio): Match SYS_sub_* if defined instead of SYS_*.
+
+ * linux/syscall.h (SYS_waitid): Define if not defined.
+
+ * linux/syscallent.h: Fix pread/pwrite names to pread64/pwrite64.
+
+ * defs.h (struct sysent): New member `native_scno'.
+ (known_scno): Declare new function.
+ * linux/syscallent.h: Add new final field to interesting syscalls.
+ * syscall.c (known_scno): New function.
+ (dumpio, internal_syscall, syscall_fixup, trace_syscall): Use it.
+ * process.c (internal_fork, internal_exit): Likewise.
+ [IA64] (ARG_STACKSIZE, ARG_PTID, ARG_CTID, ARG_TLS): Likewise.
+ * strace.c (proc_open): Likewise.
+ * util.c [LINUX] (setbpt): Likewise.
+ * linux/syscall.h: Remove [!defined(X86_64)] from conditional
+ for defining SYS_socket_subcall et al.
+ * linux/syscallent.h: Likewise for #error check.
+ * syscall.c (trace_syscall): Likewise for SYS_{socketcall,ipc} cases.
+ Fixes RH#158934.
+
+2005-06-02 Roland McGrath <roland@redhat.com>
+
+ * file.c (printstatfs64): Cast values to unsigned long long and use
+ %llu formats.
+ Fixes RH#158243.
+
+2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
+
+ Deal with memory management issues.
+ * defs.h (tprint_iov): Update prototype.
+ * desc.c (sys_epoll_wait) [HAVE_SYS_EPOLL_H]: Do not allocate
+ epoll_event array of arbitrary size on the stack, to avoid
+ stack overflow.
+ * file.c (print_xattr_val): Check for integer overflow during
+ malloc size calculation, to avoid heap corruption.
+ * io.c (tprint_iov) [HAVE_SYS_UIO_H]: Check for integer overflow
+ during malloc size calculation, to avoid heap corruption.
+ Change iovec array handling to avoid heap memory allocation.
+ * mem.c (get_nodes) [LINUX]: Check for integer overflow during
+ size calculation and do not allocate array of arbitrary size on
+ the stack, to avoid stack overflow.
+ * net.c (printcmsghdr) [HAVE_SENDMSG]: Do not allocate array of
+ arbitrary size on the stack, to avoid stack overflow. Do not
+ trust cmsg.cmsg_len to avoid read beyond the end of allocated
+ object.
+ (printmsghdr) [HAVE_SENDMSG]: Update tprint_iov() usage.
+ * process.c (sys_setgroups): Check for integer overflow during
+ malloc size calculation, to avoid heap corruption. Change gid_t
+ array handling to avoid heap memory allocation.
+ (sys_getgroups): Likewise.
+ (sys_setgroups32) [LINUX]: Likewise.
+ (sys_getgroups32) [LINUX]: Likewise.
+ * stream.c (sys_poll) [HAVE_SYS_POLL_H]: Check for integer
+ overflow during malloc size calculation, to avoid heap corruption.
+ Change pollfd array handling to avoid heap memory allocation.
+ * system.c (sys_sysctl) [LINUX]: Check for integer overflow
+ during malloc size calculation, to avoid heap corruption.
+ * util.c (dumpiov) [HAVE_SYS_UIO_H]: Check for integer overflow
+ during malloc size calculation, to avoid heap corruption.
+ Fixes RH#159196.
+
+ * util.c (printxval): Change third argument from "char *" to
+ "const char *".
+ (printflags): Add third argument, "const char *", with similar
+ meaning to the third argument of printxval().
+ * defs.h (printxval): Change third argument from "char *" to
+ "const char *".
+ (printflags): Add third argument.
+ * bjm.c (sys_query_module) [LINUX]: Pass third argument to
+ printflags().
+ * desc.c (sys_fcntl): Likewise.
+ (sys_flock) [LOCK_SH]: Likewise.
+ (print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
+ * file.c (sys_open): Likewise.
+ (solaris_open) [LINUXSPARC]: Likewise.
+ (sys_access): Likewise.
+ (sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
+ (realprintstat) [HAVE_LONG_LONG_OFF_T &&
+ HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
+ (printstat64) [HAVE_STAT64 &&
+ HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
+ (sys_setxattr, sys_fsetxattr): Likewise.
+ * ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
+ sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
+ (sys_mq_open) [LINUX]: Likewise.
+ (printmqattr) [HAVE_MQUEUE_H]: Likewise.
+ * mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
+ (sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
+ (sys_mprotect): Likewise.
+ (sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
+ (sys_msync) [MS_ASYNC]: Likewise.
+ (sys_mctl) [MC_SYNC]: Likewise.
+ (sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
+ Likewise.
+ * net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
+ (sys_send, sys_sendto): Likewise.
+ (sys_sendmsg) [HAVE_SENDMSG]: Likewise.
+ (sys_recv, sys_recvfrom): Likewise.
+ (sys_recvmsg) [HAVE_SENDMSG]: Likewise.
+ (printicmpfilter) [ICMP_FILTER]: Likewise.
+ * proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
+ * process.c (sys_clone) [LINUX]: Likewise.
+ (printwaitn): Likewise.
+ (sys_waitid) [SVR4 || LINUX]: Likewise.
+ * signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
+ (sys_sigaction): Likewise.
+ (printcontext) [SVR4]: Likewise.
+ (print_stack_t) [LINUX) || FREEBSD]: Likewise.
+ (sys_rt_sigaction) [LINUX]: Likewise.
+ * sock.c (sock_ioctl) [LINUX]: Likewise.
+ * stream.c (sys_putmsg, sys_getmsg): Likewise.
+ (sys_putpmsg) [SYS_putpmsg]: Likewise.
+ (sys_getpmsg) [SYS_getpmsg]: Likewise.
+ (sys_poll): Likewise.
+ (print_transport_message) [TI_BIND]: Likewise.
+ (stream_ioctl): Likewise.
+ * system.c (sys_mount, sys_reboot): Likewise.
+ (sys_cacheflush) [LINUX && M68K]: Likewise.
+ (sys_capget, sys_capset) [SYS_capget]: Likewise.
+ * term.c (term_ioctl) [TIOCMGET]: Likewise.
+ * time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
+ Likewise.
+ Fixes RH#159310.
+
+ * bjm.c (sys_query_module) [LINUX]: Unitize "out of memory"
+ errors reporting style.
+ * strace.c (rebuild_pollv) [USE_PROCFS]: Likewise.
+ * system.c (sys_capget, sys_capset) [SYS_capget]: Likewise.
+ * util.c (printstr): Likewise.
+ (dumpiov) [HAVE_SYS_UIO_H]: Likewise.
+ (fixvfork) [SUNOS4]: Likewise.
+ * desc.c (decode_select): Continue to decode syscall arguments
+ in case of OOM condition.
+ * file.c (sys_getdents): Likewise.
+ (sys_getdents64) [_LFS64_LARGEFILE]: Likewise.
+ (sys_getdirentries) [FREEBSD]: Likewise.
+ * mem.c (sys_mincore): Changed type of variables which deal with
+ malloc size from int to unsigned long.
+ Fixes RH#159308.
+
+2005-05-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ * bjm.c [LINUX]: Do not include <linux/linkage.h>. It is not
+ safe to include kernel headers, and this one is not used anyway.
+ Fixes RH#158488.
+
+2005-05-26 Roland McGrath <roland@redhat.com>
+
+ * system.c (sys_sysctl): Check for errors accessing user pointers.
+ Use malloc instead of alloca in case size is insane.
+
+2005-05-09 Roland McGrath <roland@redhat.com>
+
+ * configure.ac: Check for libaio.h.
+ * desc.c (sys_io_setup, sys_io_submit, sys_io_cancel,
+ sys_io_getevents, sys_io_destroy): New functions.
+ * linux/syscall.h: Declare them.
+ * linux/syscallent.h: Use those for io_* syscalls.
+ * linux/alpha/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ From Zach Brown <zach.brown@oracle.com>.
+ Fixes RH#155065.
+
+ * debian/control (Architecture): Add ppc64.
+ Fixes Debian bug #301089.
+
+2005-05-05 Anton Blanchard <anton@samba.org>
+
+ * process.c (ptrace_cmds): Add PTRACE_GETVRREGS and PTRACE_SETVRREGS
+ if defined.
+
+2005-05-09 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Refuse negative -s argument value.
+ Fixes Debian bug #303256.
+
+2005-04-25 Anton Blanchard <anton@samba.org>
+
+ * file.c (openmodes): Add O_NOATIME flag if defined.
+
+2005-04-05 Anton Blanchard <anton@samba.org>
+
+ * linux/powerpc/ioctlent.h: Regenerated.
+
+ * signal.c (signame): Don't try and dereference negative index.
+
+ * linux/powerpc/syscallent.h: Add debug_setcontext, vserver,
+ mbind, *_mempolicy, mq_*, sys_kexec_load, add_key, request_key,
+ keyctl, waitid, sys_semtimedop. Fix various other syscalls.
+
+ * ipc.c (shm_resource_flags): New variable, table has SHM_HUGETLB
+ but not IPC_NOWAIT, which have the same value.
+ (sys_shmget): Use that instead of resource_flags.
+
+2005-03-22 Roland McGrath <roland@redhat.com>
+
+ * desc.c (decode_select): Increase local buffer size.
+ Fixes RH#151570.
+
+ * configure.ac, NEWS: Version 4.5.11.
+ * debian/changelog, strace.spec: 4.5.11-1.
+
+ * linux/arm/syscallent.h: Fix 113 entry (syscall, not vm86old).
+
+2005-03-14 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.10.
+ * debian/changelog, strace.spec: 4.5.10-1.
+
+2005-02-26 GOTO Masanori <gotom@debian.or.jp>
+
+ * linux/alpha/syscallent.h: Fix the reversed order of lstat64 and
+ fstat64. Clean up osf_nrecvmsg and osf_ngetsockname.
+
+2005-02-28 Andreas Schwab <schwab@suse.de>
+
+ * syscall.c (getrval2): Move #ifdef IA64 inside #ifdef LINUX.
+
+2005-03-14 Roland McGrath <roland@redhat.com>
+
+ * linux/mips/syscallent.h: Update various calls.
+ From Thiemo Seufer <ths@networkno.de>.
+ Fixes Debian bug #256684.
+
+ * debian/control (Architecture): Add s390.
+ Fixes Debian bug #294172.
+
+2005-03-06 Roland McGrath <roland@redhat.com>
+
+ * strace.c (trace) [PTRACE_GETSIGINFO]: Fetch siginfo_t for SIGSEGV
+ and SIGBUS signals, use si_addr in output.
+
+2005-03-01 Roland McGrath <roland@redhat.com>
+
+ * file.c (print_xattr_val): Add a cast.
+
+2005-02-05 Roland McGrath <roland@redhat.com>
+
+ * desc.c (decode_select): Calculate size of passed fd_set vectors and
+ copy in the user's size rather than the standard sizeof(fd_set).
+ Fixes Debian bug #65654, #284290.
+
+ * util.c (printpath, printpathn): Print NULL and don't try any fetch
+ when ADDR is zero.
+ Fixes Debian bug #63093.
+
+ * debian/control (Build-Depends): Fix for s390 and sparc.
+ From Bastian Blank <waldi@debian.org>.
+ Fixes Debian bug #293564.
+
+2004-12-19 Dmitry V. Levin <ldv@altlinux.org>
+
+ * strace.c (main) [!USE_PROCFS]: In child process, raise SIGSTOP
+ right before execv() call. Remove fake_execve() call.
+ * defs.h (fake_execve): Remove unused declaration.
+ * process.c (fake_execve): Remove unused function.
+ Fixes RH#143365.
+
+2005-02-04 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.9.
+ * debian/changelog, strace.spec: 4.5.9-2.
+
+ * file.c (O_LARGEFILE): Omit when #undef'd because it was zero.
+
+2005-02-02 Roland McGrath <roland@redhat.com>
+
+ * debian/control: Add strace-udeb package for installer debugging.
+ * debian/rules (binary-arch): Build it.
+ From Joshua Kwan <joshk@triplehelix.org>.
+ Fixes Debian bug #268294.
+
+ * file.c (openmodes) [O_LARGEFILE] [O_LARGEFILE == 0]: Redefine to
+ known values for Linux.
+
+ * util.c (printcall): Print 16 ?s when long is 8 bytes.
+ Fixes RH#146932.
+
+ * linux/sparc/syscall.h: Declare sys_epoll_create, sys_epoll_ctl,
+ sys_epoll_wait.
+ * linux/sparc64/syscall.h: Just #include "../sparc/syscall.h" here.
+ * ioctl.c (nioctlents2): Add const to type.
+ Fixes Debian bug #278449.
+
+ * sock.c (iffflags): New variable, table of IFF_* values.
+ (print_addr): New function.
+ (sock_ioctl): Handle SIOCGIFADDR, SIOCGIFDSTADDR, SIOCGIFBRDADDR,
+ SIOCGIFNETMASK, SIOCGIFFLAGS, SIOCGIFMETRIC, SIOCGIFMTU, SIOCGIFSLAVE,
+ SIOCGIFHWADDR. Use print_addr for SIOCGIFCONF, SIOCGIFNAME, and
+ SIOCGIFINDEX, and fix their output.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#138223.
+ Fixes Debian bug #192164.
+
+2004-12-20 Dmitry V. Levin <ldv@altlinux.org>
+
+ * configure.ac: Use AC_GNU_SOURCE macro instead of changing CFLAGS.
+ * defs.h [HAVE_CONFIG_H]: Include config.h first.
+ * strace.c: Include "defs.h" first.
+ Fixes RH#143370.
+
+ * syscall.c (call_summary): Fix potential NULL dereference.
+ Fixes RH#143369.
+
+2004-12-19 Dmitry V. Levin <ldv@altlinux.org>
+
+ * syscall.c (qual_signal): Check bounds for numeric signal names.
+ Fix parser of symbolic signal names.
+ Fix return code, as required by qualify() function.
+ * syscall.c (qual_desc): Check bounds for descriptor number.
+ * syscall.c (qual_syscall): Correct return code, to be consistent
+ with qualify() and other qual_* functions.
+ Fixes RH#143362.
+
+2005-02-01 Roland McGrath <roland@redhat.com>
+
+ * system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
+ MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
+ New macros.
+ [LINUX] (mount_flags): Add them.
+ [LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
+ set in the flags argument, don't try to fetch the filesystem string.
+ Fixes RH#141932.
+
+ * config.guess: Update from canonical version, timestamp 2004-11-12.
+ * config.sub: Likewise, timestamp 2004-11-30.
+
+ * process.c [LINUX] [X86_64] (sys_arch_prctl): New function.
+ * linux/syscall.h: Declare it.
+ * linux/x86_64/syscallent.h: Use it.
+ Part of RH#142667.
+
+ * process.c (sys_sched_setscheduler): Use %#lx format for bad pointer.
+ (sys_sched_getparam, sys_sched_setparam): Likewise.
+ Part of RH#142667.
+
+ * signal.c [HAVE_SIGACTION] [LINUX && X86_64] (SA_RESTORER): Define
+ here too.
+ Part of RH#142667.
+
+ * linux/syscallent.h: Use sys_mincore instead of printargs.
+ * linux/x86_64/syscallent.h: Likewise. Also use sys_getrlimit,
+ sys_semtimedop, sys_umount2.
+ Part of RH#142667.
+
+ * syscall.c (qual_signal): Fix inverted return value and bogus
+ argument to qualify_one in the named case.
+
+ * file.c (print_xattr_val): Don't use auto array sized by syscall
+ argument. Use malloc instead, so it can fail for insane values.
+ Fixes Debian bug #283704.
+
+ * net.c (sys_getsockopt): Fix a format %ld -> %d.
+
+ * linux/syscall.h [IA64] (SYS_semtimedop): #undef it.
+
+ * syscall.c (syscall_enter) [X86_64]: Fix 32-bit argument register map
+ not to double the middle entry!
+ Fixes RH#146093.
+
+ * linux/x86_64/syscallent.h: Fix exit_group entry.
+
+ * util.c (getpc) [S390 || S390X]: Implement it.
+ Patch by David Wilder <wilder@us.ibm.com>.
+
+ * linux/ia64/syscallent.h: Add fadvise64, fstatfs64, statfs64, mbind,
+ [gs]et_mempolicy, mq_*, sys_kexec_load, vserver, and waitid.
+ Fixes RH#146245.
+
+2005-01-22 Andreas Schwab <schwab@suse.de>
+
+ * net.c (sys_getsockopt): Change type of len to int.
+