Roland McGrath [Tue, 7 Jun 2005 23:21:20 +0000 (23:21 +0000)]
2005-06-06 Roland McGrath <roland@redhat.com>
* process.c (struct_user_offsets) [X86_64]: Reorder elements so
matching works right.
Fixes RH#159787.
* 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.
Roland McGrath [Wed, 1 Jun 2005 19:22:06 +0000 (19:22 +0000)]
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.
Roland McGrath [Mon, 9 May 2005 07:40:33 +0000 (07:40 +0000)]
2005-04-05 Anton Blanchard <anton@samba.org>
* 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.
Roland McGrath [Sun, 6 Feb 2005 01:55:12 +0000 (01:55 +0000)]
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.
Roland McGrath [Wed, 2 Feb 2005 20:25:17 +0000 (20:25 +0000)]
2005-02-02 Roland McGrath <roland@redhat.com>
* 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.
Roland McGrath [Wed, 2 Feb 2005 04:40:11 +0000 (04:40 +0000)]
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.
Roland McGrath [Wed, 2 Feb 2005 04:36:11 +0000 (04:36 +0000)]
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.
Roland McGrath [Wed, 2 Feb 2005 04:17:00 +0000 (04:17 +0000)]
2005-02-01 Roland McGrath <roland@redhat.com>
* 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.
Roland McGrath [Wed, 2 Feb 2005 04:16:58 +0000 (04:16 +0000)]
2005-02-01 Roland McGrath <roland@redhat.com>
* 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.
* 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.
Roland McGrath [Wed, 2 Feb 2005 04:16:56 +0000 (04:16 +0000)]
2005-02-01 Roland McGrath <roland@redhat.com>
* 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.
Roland McGrath [Wed, 2 Feb 2005 03:38:32 +0000 (03:38 +0000)]
2005-02-01 Roland McGrath <roland@redhat.com>
* 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.