History log of /src/sys/compat/netbsd32/netbsd32_compat_43.c |
Revision | | Date | Author | Comments |
1.65 |
| 20-Dec-2024 |
mlelstv | revert previous, msg_flags is already initialized as MSG_NAMEMBUF to free the sockname mbuf.
|
1.64 |
| 20-Dec-2024 |
mlelstv | Don't use flags uninitialized.
|
1.63 |
| 01-Nov-2021 |
thorpej | branches: 1.63.10; Use "stack_t" instead of "struct sigaltstack", as the former is the newer standardized name. NFC.
|
1.62 |
| 07-Sep-2021 |
riastradh | sys/compat: Memset zero before copyout.
Just in case of uninitialized padding which would lead to kernel stack disclosure. If the compiler can prove the memset redundant then it can optimize it away; otherwise better safe than sorry.
|
1.61 |
| 19-Jan-2021 |
simonb | KNF consistency: No parentheses are needed around the return value.
|
1.60 |
| 07-Mar-2020 |
pgoyette | branches: 1.60.4; Properly mark netbsd32_compat_43 syscalls that are directly implemented by calling their compat_43 equivalents. With these changes, and with built-in versions of COMPAT_NETBSD32, COMPAT_NOMID, and COMPAT_09, I can now run a netbsd-0.9 statically linked i386 (32-bit) version of /bin/ls on a 9.99.x amd64 host!
Addresses PR kern/55047 but more changes coming to handle non-built-in modules.
XXX pullup-9
|
1.59 |
| 01-Jan-2020 |
maxv | Fix sizeof mismatch in copyin. This leads to a user-triggerable stack overflow. On my test build at least, by luck, the compiler orders the variables in a way that the overflow hits only local structures which haven't yet been initialized and used, so the overflow is harmless.
Very easily seeable with kASan - just invoke the syscall from a 32bit binary.
|
1.58 |
| 23-Aug-2019 |
maxv | Fix info leak.
|
1.57 |
| 27-Jan-2019 |
pgoyette | branches: 1.57.4; Merge the [pgoyette-compat] branch
|
1.56 |
| 03-May-2018 |
christos | branches: 1.56.2; Fix COMPAT_NETBSD32 cmsg handling:
1. alignment was wrong for > 1 message 2. macros were doing incorrect pointer comparisons, fortunately ending the iteration early after the fists cmsg instead of crashing. 3. don't output 32 bit ktrace records for cmsg. 32 bit programs running under emulation on 64 bit systems should produce 64 bit ktrace records so that the native ktrace can handle the records; remove extra arguments that are now not needed (the 32 bit msghdr). 4. output the correct type for cmsg trace records. 5. output all the cmsg records in traces instead of just the first one.
Welcome to 8.99.15 because of the argument removal.
XXX: Really all the code should be changed to use the CMSG_{FIRST,NXT}HDR macros...
|
1.55 |
| 16-Mar-2018 |
christos | PR/53103: Timo Buhrmester: linux emulation of sendto(2) broken
The sockargs refactoring broke it, because sockargs only works with a user address. Added an argument to sockargs to indicate where the address is coming from. Welcome to 8.99.14.
|
1.54 |
| 13-Sep-2016 |
martin | branches: 1.54.8; 1.54.14; Make the ktrace record written by do_sys_sendmsg/do_sys_recvmsg overridable by the caller. Use this in compat_netbsd32 to log the 32bit version, so the 32bit userland kdump is happy.
|
1.53 |
| 23-Apr-2010 |
joerg | branches: 1.53.18; 1.53.34; 1.53.36; 1.53.44; Fix compilation.
|
1.52 |
| 23-Apr-2010 |
rmind | Replace M_IOV and some malloc(9)s with kmem(9), and while there: - Fix invalid free (M_TEMP vs M_IOV) in do_sys_recvmsg(), spotted by jakllsch@. Also, same fix in osf1_sys_sendmsg_xopen(). - Fix attempt to free non-allocated memory in error path in netbsd32___getfh30(). - Plug a memory leak in compat_43_netbsd32_orecvmsg().
|
1.51 |
| 30-Jan-2009 |
njoly | branches: 1.51.4; 1.51.6; Cleanup. Kill a few netbsd32_caddr_t in syscalls argument types.
|
1.50 |
| 29-May-2008 |
mrg | branches: 1.50.6; 1.50.12; remove clause #3 from my license where there are no other copyright holders involved.
|
1.49 |
| 21-Mar-2008 |
ad | branches: 1.49.2; 1.49.4; 1.49.6; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
1.48 |
| 26-Jan-2008 |
dsl | branches: 1.48.6; Remove some dubious casting of the address of integer variables that can only be 'not invalid' if the sizes match - when it is unnecessary.
|
1.47 |
| 20-Dec-2007 |
dsl | Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
1.46 |
| 08-Dec-2007 |
dsl | branches: 1.46.4; ANSIfy most of the function definitions in sys/compat (but not ndis). All by the magic of sed ...
|
1.45 |
| 04-Dec-2007 |
dsl | Remove all the __P
|
1.44 |
| 30-Jun-2007 |
dsl | branches: 1.44.6; 1.44.8; 1.44.14; 1.44.16; Changes to sompat socket function to avoid the dreaded stackgap.
|
1.43 |
| 16-Jun-2007 |
dsl | The code to directly call sigaction1() and sigaltstack1() is much shorter than the mess required to call the compat_43_xxx functions.
|
1.42 |
| 03-Jun-2007 |
dsl | sendmsg() shouldn't modify the 'msg' parameter, and recvmsg() doesn't have to modify the 'iov' array - it isn't updated.
|
1.41 |
| 30-Apr-2007 |
dsl | Rework compat stat() and statvfs() code so that it no longer uses the stackgap.
|
1.40 |
| 22-Apr-2007 |
dsl | Change the way that emulations locate files within the emulation root to avoid having to allocate space in the 'stackgap' - which is very LWP unfriendly. The additional code for non-emulation namei() is trivial, the reduction for the emulations is massive. The vnode for a processes emulation root is saved in the cwdi structure during process exec. If the emulation root the TRYEMULROOT flag are set, namei() will do an initial search for absolute pathnames in the emulation root, if that fails it will retry from the normal root. ".." at the emulation root will always go to the real root, even in the middle of paths and when expanding symlinks. Absolute symlinks found using absolute paths in the emulation root will be relative to the emulation root (so /usr/lib/xxx.so -> /lib/xxx.so links inside the emulation root don't need changing). If the root of the emulation would be returned (for an emulation lookup), then the real root is returned instead (matching the behaviour of emul_lookup, but being a cheap comparison here) so that programs that scan "../.." looking for the root dircetory don't loop forever. The target for symbolic links is no longer mangled (it used to get the CHECK_ALT_xxx() treatment, so could get /emul/xxx prepended). CHECK_ALT_xxx() are no more. Most of the change is deleting them, and adding TRYEMULROOT to the flags to NDINIT(). A lot of the emulation system call stubs could now be deleted.
|
1.39 |
| 18-Mar-2007 |
dsl | Change all the NETBSD32PTR64(SCARG(uap, xxx))) to SCARG_P32(uap, xxx).
|
1.38 |
| 16-Mar-2007 |
dsl | remove all the double (and triple) casts used to convert 32bit userspace pointers to and from 64bit kernel pointers. Instead use the defines NETBSD32PTR64(p32) to read a 32bit pointer and (the new) NETBSD32PTR32(p32,p64) to write a 32bit pointer throughout. The 32bit pointer is now a struct to enforce the above. amd64 (with linux emul) and sparc64 will both compile (when the arch stuff goes in soon), and amd64 still runs some i386 binaries.
|
1.37 |
| 04-Mar-2007 |
christos | branches: 1.37.2; 1.37.4; 1.37.6; fix fallout from caddr_t changes.
|
1.36 |
| 04-Mar-2007 |
christos | Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.35 |
| 09-Feb-2007 |
ad | branches: 1.35.2; Merge newlock2 to head.
|
1.34 |
| 11-Dec-2005 |
christos | branches: 1.34.20; merge ktrace-lwp.
|
1.33 |
| 24-Sep-2005 |
christos | need compat/sys/socket.h
|
1.32 |
| 24-Sep-2005 |
chs | need to include sys/socket.h here now, sys/mount.h no longer does it for us.
|
1.31 |
| 13-Sep-2005 |
christos | make this compile again.
|
1.30 |
| 26-Feb-2005 |
perry | branches: 1.30.4; nuke trailing whitespace
|
1.29 |
| 04-Dec-2003 |
atatat | branches: 1.29.8; 1.29.10; Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
1.28 |
| 26-Oct-2003 |
christos | don't use extra variables where there is no need to.
|
1.27 |
| 29-Jun-2003 |
fvdl | branches: 1.27.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
1.26 |
| 29-Jun-2003 |
martin | struct proc * -> struct lwp *
|
1.25 |
| 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
1.24 |
| 18-Jan-2003 |
thorpej | Merge the nathanw_sa branch.
|
1.23 |
| 23-Oct-2002 |
scw | In preparation for COMPAT_NETBSD32 on SH-5:
- The MD netbsd32_machdep.h header now defines the 32-bit pointer type instead of using u_int32_t everywhere, - The MD netbsd32_machdep.h header now defines a macro (at least on current implementations) which converts a 32-bit pointer to its 64-bit equivalent, - Change the MI code to utilise the above two items in all the right places, - Implement netbsd32___sigaction_sigtramp().
Tested on Sparc64 by Matt Green.
|
1.22 |
| 04-May-2002 |
martin | Add missing prototype for compat_43_netbsd32_sigsetmask.
|
1.21 |
| 16-Mar-2002 |
christos | make the stackgap_{init,alloc} functions MP friendly (i.e. pass struct proc * in, instead of using curproc). While there add an optional size argument to stackgap_init.
|
1.20 |
| 13-Nov-2001 |
lukem | add RCSIDs (including regeneration of files as appropriate)
|
1.19 |
| 25-Aug-2001 |
mrg | update copyright notices.
|
1.18 |
| 15-Aug-2001 |
eeh | Fix bug in netbsd32_compat_43_olseek return value.
|
1.17 |
| 30-May-2001 |
mrg | branches: 1.17.2; use _KERNEL_OPT.
|
1.16 |
| 05-Feb-2001 |
mrg | branches: 1.16.2; fix the glaring errors in emulations for osendmsg, orecvmsg, osigvec and osigstack.
|
1.15 |
| 02-Feb-2001 |
mrg | properly implement compat_43_netbsd32_stat43, compat_43_netbsd32_lstat43 and compat_43_netbsd32_fstat43. now 32-bit ls(1) works. so does static sunos `/sbin/sh' on sparc64.
|
1.14 |
| 02-Feb-2001 |
mrg | de-static netbsd32_exec_aout_prep_[zno]magic(). de-static netbsd32_from_stat43(). move the guts of netbsd32_execve() into netbsd32_execve2().
all of are for the forthcoming sunos32 compat mode (for sparc64).
|
1.13 |
| 03-Dec-2000 |
fvdl | Include opt_* files to make sure prototypes are included.
|
1.12 |
| 01-Dec-2000 |
jdolecek | add e_path (emulation path) to struct emul, which replaces emulation-specific *_emul_path variables
change macros CHECK_ALT_{CREAT|EXIST} to use that, 'root' doesn't need to be passed explicitly any more and *_CHECK_ALT_{CREAT|EXIST} are removed change explicit emul_find() calls in probe functions to get the emulation path from the checked exec switch entry's emulation
remove no longer needed header files
add e_flags and e_syscall to struct emul; these are unsed and empty for now
|
1.11 |
| 24-Sep-2000 |
martin | The ovadvise syscall is (correctly) listed as STD, so move it's implementation to another place. This makes kernels without options COMPAT_43 link.
|
1.10 |
| 28-Jun-2000 |
mrg | remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
|
1.9 |
| 30-Dec-1999 |
eeh | Update to 32-bit compatibility routines.
|
1.8 |
| 11-Oct-1999 |
eeh | branches: 1.8.2; Add netbsd32_compat_14.c
Rename everything from compat_netbsd32 -> netbsd32 so we don't have silly names like compat_14_compat_netbsd32_sys_shmctl().
|
1.7 |
| 14-Apr-1999 |
mrg | branches: 1.7.2; fix errors in the copyright on this.
|
1.6 |
| 25-Mar-1999 |
mrg | branches: 1.6.2; SPARC32->NETBSD32
|
1.5 |
| 25-Mar-1999 |
mrg | move sparc32 to netbsd32; split out MD part (signal handling) (mostly via repository copy, rename and perl -pi :-)
|
1.4 |
| 01-Oct-1998 |
eeh | Overhaul. Now will run simple things like /bin/sh and /bin/echo.
|
1.3 |
| 29-Aug-1998 |
mrg | move <vm/vm_swap.h> to <sys/swap.h>. <vm/vm_swap.h> still works for now (goes away later)
|
1.2 |
| 26-Aug-1998 |
mrg | use right syscalls
|
1.1 |
| 26-Aug-1998 |
mrg | add a 32-bit compatibility module for the sparc64 port, so it can run NetBSD/sparc binaries with a LP64 kernel.
|
1.6.2.1 |
| 15-Apr-1999 |
mrg | branches: 1.6.2.1.2; pull up 1.7
|
1.6.2.1.2.1 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.7.2.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.8.2.3 |
| 11-Feb-2001 |
bouyer | Sync with HEAD.
|
1.8.2.2 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.8.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.16.2.9 |
| 11-Nov-2002 |
nathanw | Catch up to -current
|
1.16.2.8 |
| 23-Aug-2002 |
petrov | lwpification.
|
1.16.2.7 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.16.2.6 |
| 29-May-2002 |
nathanw | #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t now that <sys/param.h> doesn't include <sys/sa.h>.
(Behold the Power of Ed)
|
1.16.2.5 |
| 01-Apr-2002 |
nathanw | Catch up to -current. (CVS: It's not just a program. It's an adventure!)
|
1.16.2.4 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.16.2.3 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.16.2.2 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.16.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.17.2.4 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.17.2.3 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.17.2.2 |
| 13-Sep-2001 |
thorpej | Update the kqueue branch to HEAD.
|
1.17.2.1 |
| 25-Aug-2001 |
thorpej | Merge Aug 24 -current into the kqueue branch.
|
1.27.2.6 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.27.2.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.27.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.27.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.27.2.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.27.2.1 |
| 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
1.29.10.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.29.8.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.30.4.7 |
| 24-Mar-2008 |
yamt | sync with head.
|
1.30.4.6 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.30.4.5 |
| 21-Jan-2008 |
yamt | sync with head
|
1.30.4.4 |
| 07-Dec-2007 |
yamt | sync with head
|
1.30.4.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.30.4.2 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.30.4.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.34.20.1 |
| 30-Jan-2007 |
ad | Remove support for SA. Ok core@.
|
1.35.2.3 |
| 07-May-2007 |
yamt | sync with head.
|
1.35.2.2 |
| 24-Mar-2007 |
yamt | sync with head.
|
1.35.2.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.37.6.2 |
| 29-Mar-2007 |
reinoud | Pullup to -current
|
1.37.6.1 |
| 18-Mar-2007 |
reinoud | First attempt to bring branch in sync with HEAD
|
1.37.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.37.2.4 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.37.2.3 |
| 09-Jun-2007 |
ad | Sync with head.
|
1.37.2.2 |
| 27-May-2007 |
ad | Sync with head.
|
1.37.2.1 |
| 10-Apr-2007 |
ad | Sync with head.
|
1.44.16.2 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.44.16.1 |
| 08-Dec-2007 |
ad | Sync with head.
|
1.44.14.3 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.44.14.2 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.44.14.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.44.8.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.44.8.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.44.6.1 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.46.4.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.48.6.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.48.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.49.6.3 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.49.6.2 |
| 14-May-2008 |
wrstuden | Per discussion with ad, remove most of the #include <sys/sa.h> lines as they were including sa.h just for the type(s) needed for syscallargs.h.
Instead, create a new file, sys/satypes.h, which contains just the types needed for syscallargs.h. Yes, there's only one now, but that may change and it's probably more likely to change if it'd be difficult to handle. :-)
Per discussion with matt at n dot o, add an include of satypes.h to sigtypes.h. Upcall handlers are kinda signal handlers, and signalling is the header file that's already included for syscallargs.h that closest matches SA.
This shaves about 3000 lines off of the diff of the branch relative to the base. That also represents about 18% of the total before this checkin.
I think this reduction is very good thing.
|
1.49.6.1 |
| 10-May-2008 |
wrstuden | Initial checkin of re-adding SA. Everything except kern_sa.c compiles in GENERIC for i386. This is still a work-in-progress, but this checkin covers most of the mechanical work (changing signalling to be able to accomidate SA's process-wide signalling and re-adding includes of sys/sa.h and savar.h). Subsequent changes will be much more interesting.
Also, kern_sa.c has received partial cleanup. There's still more to do, though.
|
1.49.4.2 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.49.4.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.49.2.1 |
| 04-Jun-2008 |
yamt | sync with head
|
1.50.12.2 |
| 29-May-2008 |
mrg | remove clause #3 from my license where there are no other copyright holders involved.
|
1.50.12.1 |
| 29-May-2008 |
mrg | file netbsd32_compat_43.c was added on branch christos-time_t on 2008-05-29 14:51:27 +0000
|
1.50.6.1 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.51.6.1 |
| 30-May-2010 |
rmind | sync with head
|
1.51.4.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.53.44.1 |
| 21-Jan-2020 |
martin | Pull up the following, requested by christos in ticket #1720:
sys/compat/common/kern_sig_43.c 1.36 sys/compat/linux/arch/amd64/linux_machdep.c 1.59 sys/compat/linux/common/linux_fcntl.h 1.18 sys/compat/linux/common/linux_file64.c 1.62 sys/compat/linux/common/linux_ipc.c 1.57 sys/compat/linux/common/linux_misc.c 1.243 sys/compat/linux/common/linux_signal.c 1.81 sys/compat/linux/common/linux_socket.c 1.149 (patch) sys/compat/linux/common/linux_socket.h 1.24 sys/compat/linux/common/linux_statfs.h 1.7 sys/compat/linux/common/linux_termios.c 1.38 sys/compat/linux/common/linux_termios.h 1.22 sys/compat/linux32/common/linux32_dirent.c 1.20 sys/compat/linux32/common/linux32_ioctl.c 1.14 sys/compat/linux32/common/linux32_misc.c 1.27 sys/compat/linux32/common/linux32_signal.c 1.20 sys/compat/linux32/common/linux32_sysinfo.c 1.8 sys/compat/linux32/common/linux32_termios.c 1.15 sys/compat/linux32/common/linux32_utsname.c 1.10 sys/compat/netbsd32/netbsd32_compat_20.c 1.39 sys/compat/netbsd32/netbsd32_compat_43.c 1.59 sys/compat/netbsd32/netbsd32_compat_50.c 1.44 sys/compat/ossaudio/ossaudio.c 1.75 sys/kern/sysv_shm.c 1.138 sys/miscfs/procfs/procfs_linux.c 1.75 (patch) sys/sys/shm.h 1.54 (patch)
Fix various info leaks, out of bound access, usage of uninitialized values and direct access to userland variables from kernel space and memory leaks in system calls implemented for the compatibility subsystems.
|
1.53.36.1 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.53.34.1 |
| 21-Jan-2020 |
martin | Pull up the following, requested by christos in ticket #1720:
sys/compat/common/kern_sig_43.c 1.36 sys/compat/linux/arch/amd64/linux_machdep.c 1.59 sys/compat/linux/common/linux_fcntl.h 1.18 sys/compat/linux/common/linux_file64.c 1.62 sys/compat/linux/common/linux_ipc.c 1.57 sys/compat/linux/common/linux_misc.c 1.243 sys/compat/linux/common/linux_signal.c 1.81 sys/compat/linux/common/linux_socket.c 1.149 (patch) sys/compat/linux/common/linux_socket.h 1.24 sys/compat/linux/common/linux_statfs.h 1.7 sys/compat/linux/common/linux_termios.c 1.38 sys/compat/linux/common/linux_termios.h 1.22 sys/compat/linux32/common/linux32_dirent.c 1.20 sys/compat/linux32/common/linux32_ioctl.c 1.14 sys/compat/linux32/common/linux32_misc.c 1.27 sys/compat/linux32/common/linux32_signal.c 1.20 sys/compat/linux32/common/linux32_sysinfo.c 1.8 sys/compat/linux32/common/linux32_termios.c 1.15 sys/compat/linux32/common/linux32_utsname.c 1.10 sys/compat/netbsd32/netbsd32_compat_20.c 1.39 sys/compat/netbsd32/netbsd32_compat_43.c 1.59 sys/compat/netbsd32/netbsd32_compat_50.c 1.44 sys/compat/ossaudio/ossaudio.c 1.75 sys/kern/sysv_shm.c 1.138 sys/miscfs/procfs/procfs_linux.c 1.75 (patch) sys/sys/shm.h 1.54 (patch)
Fix various info leaks, out of bound access, usage of uninitialized values and direct access to userland variables from kernel space and memory leaks in system calls implemented for the compatibility subsystems.
|
1.53.18.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.54.14.5 |
| 11-Sep-2018 |
pgoyette | Put the ``extern struct emul'' into the netbsd32_netbsd.h header so it doesn't have to be separately declared in each source file.
Thanks mrg@
|
1.54.14.4 |
| 11-Sep-2018 |
pgoyette | Typo
|
1.54.14.3 |
| 11-Sep-2018 |
pgoyette | Make compat_netbsd32_43 into a stand-alone module.
|
1.54.14.2 |
| 21-May-2018 |
pgoyette | Sync with HEAD
|
1.54.14.1 |
| 22-Mar-2018 |
pgoyette | Synch with HEAD, resolve conflicts
|
1.54.8.2 |
| 21-Jun-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1836):
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168 sys/compat/sunos/sunos_misc.c: revision 1.177 sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52 sys/compat/common/kern_resource_43.c: revision 1.23 sys/compat/netbsd32/netbsd32_conv.h: revision 1.46 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35 sys/compat/common/vfs_syscalls_12.c: revision 1.38 sys/compat/ultrix/ultrix_misc.c: revision 1.126 sys/compat/common/kern_sig_43.c: revision 1.37 sys/compat/linux/common/linux_mtio.c: revision 1.8 sys/compat/freebsd/freebsd_misc.c: revision 1.34 sys/compat/linux/common/linux_olduname.c: revision 1.67 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44 sys/compat/freebsd/freebsd_sched.c: revision 1.23 sys/compat/ossaudio/ossaudio.c: revision 1.84 sys/compat/sys/time_types.h: revision 1.6 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51 sys/compat/linux/common/linux_file.c: revision 1.119 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34 sys/compat/netbsd32/netbsd32_wait.c: revision 1.25 sys/compat/linux32/common/linux32_time.c: revision 1.38 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52 sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46 sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36 sys/compat/ultrix/ultrix_ioctl.c: revision 1.39 sys/compat/linux/common/linux_misc.c: revision 1.252 sys/compat/linux/common/linux_hdio.c: revision 1.19 sys/compat/sunos/sunos_ioctl.c: revision 1.71 sys/compat/linux/common/linux_sched.c: revision 1.79 sys/compat/common/kern_info_43.c: revision 1.40 sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20 sys/compat/linux/common/linux_socket.c: revision 1.153 sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60 sys/compat/common/vfs_syscalls_43.c: revision 1.68 sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25 sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9 sys/compat/common/kern_time_50.c: revision 1.37 sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42 sys/compat/linux/common/linux_cdrom.c: revision 1.28 sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43 sys/compat/common/kern_info_09.c: revision 1.22 sys/compat/linux32/common/linux32_resource.c: revision 1.12 sys/compat/linux/common/linux_oldolduname.c: revision 1.67 sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8 sys/compat/linux32/common/linux32_signal.c: revision 1.21 sys/compat/common/kern_sig_13.c: revision 1.22 sys/compat/sunos32/sunos32_ioctl.c: revision 1.36 sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23 sys/compat/netbsd32/netbsd32_time.c: revision 1.56 sys/compat/linux/common/linux_signal.c: revision 1.84 sys/compat/netbsd32/netbsd32_signal.c: revision 1.52 sys/compat/sunos32/sunos32_misc.c: revision 1.85 sys/compat/linux/common/linux_time.c: revision 1.40 sys/compat/linux/common/linux_fdio.c: revision 1.14 sys/compat/common/vfs_syscalls_30.c: revision 1.43
sys/compat: Memset zero before copyout.
Just in case of uninitialized padding which would lead to kernel stack disclosure. If the compiler can prove the memset redundant then it can optimize it away; otherwise better safe than sorry.
|
1.54.8.1 |
| 21-Jan-2020 |
martin | Pull up the following, requested by christos in ticket #1487:
sys/compat/common/kern_sig_43.c 1.36 sys/compat/linux/arch/amd64/linux_machdep.c 1.59 sys/compat/linux/common/linux_fcntl.h 1.18 sys/compat/linux/common/linux_file64.c 1.62 sys/compat/linux/common/linux_ipc.c 1.57 sys/compat/linux/common/linux_misc.c 1.243 sys/compat/linux/common/linux_signal.c 1.81 sys/compat/linux/common/linux_socket.c 1.149 sys/compat/linux/common/linux_socket.h 1.24 sys/compat/linux/common/linux_statfs.h 1.7 sys/compat/linux/common/linux_termios.c 1.38 sys/compat/linux/common/linux_termios.h 1.22 sys/compat/linux32/common/linux32_dirent.c 1.20 sys/compat/linux32/common/linux32_ioctl.c 1.14 sys/compat/linux32/common/linux32_misc.c 1.27 sys/compat/linux32/common/linux32_signal.c 1.20 sys/compat/linux32/common/linux32_sysinfo.c 1.8 sys/compat/linux32/common/linux32_termios.c 1.15 sys/compat/linux32/common/linux32_utsname.c 1.10 sys/compat/netbsd32/netbsd32_compat_20.c 1.39 sys/compat/netbsd32/netbsd32_compat_43.c 1.59 sys/compat/netbsd32/netbsd32_compat_50.c 1.44 sys/compat/ossaudio/ossaudio.c 1.75 sys/kern/sysv_shm.c 1.138 sys/miscfs/procfs/procfs_linux.c 1.75 (patch) sys/sys/shm.h 1.54
Fix various info leaks, out of bound access, usage of uninitialized values and direct access to userland variables from kernel space and memory leaks in system calls implemented for the compatibility subsystems.
|
1.56.2.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.56.2.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.56.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.57.4.4 |
| 03-Aug-2022 |
martin | Pull up following revision(s), all via patch (requested by riastradh in ticket #1487):
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168 sys/compat/sunos/sunos_misc.c: revision 1.177 sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52 sys/compat/common/kern_resource_43.c: revision 1.23 sys/compat/netbsd32/netbsd32_conv.h: revision 1.46 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35 sys/compat/common/vfs_syscalls_12.c: revision 1.38 sys/compat/ultrix/ultrix_misc.c: revision 1.126 sys/compat/common/kern_sig_43.c: revision 1.37 sys/compat/linux/common/linux_mtio.c: revision 1.8 sys/compat/freebsd/freebsd_misc.c: revision 1.34 sys/compat/freebsd/freebsd_machdep.c: revision 1.5 sys/compat/linux/common/linux_olduname.c: revision 1.67 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44 sys/compat/freebsd/freebsd_sched.c: revision 1.23 sys/compat/ossaudio/ossaudio.c: revision 1.84 sys/compat/sys/time_types.h: revision 1.6 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51 sys/compat/common/ieee80211_20.c: revision 1.7 sys/compat/linux/common/linux_file.c: revision 1.119 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34 sys/compat/netbsd32/netbsd32_wait.c: revision 1.25 sys/compat/linux32/common/linux32_time.c: revision 1.38 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52 sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46 sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36 sys/compat/ultrix/ultrix_ioctl.c: revision 1.39 sys/compat/linux/common/linux_misc.c: revision 1.252 sys/compat/linux/common/linux_hdio.c: revision 1.19 sys/compat/sunos/sunos_ioctl.c: revision 1.71 sys/compat/linux/common/linux_sched.c: revision 1.79 sys/compat/common/kern_info_43.c: revision 1.40 sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20 sys/compat/linux/common/linux_socket.c: revision 1.153 sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60 sys/compat/common/vfs_syscalls_43.c: revision 1.68 sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25 sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9 sys/compat/common/kern_time_50.c: revision 1.37 sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42 sys/compat/linux/common/linux_cdrom.c: revision 1.28 sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43 sys/compat/common/kern_info_09.c: revision 1.22 sys/compat/linux32/common/linux32_resource.c: revision 1.12 sys/compat/linux/common/linux_oldolduname.c: revision 1.67 sys/compat/common/if_media_80.c: revision 1.4 sys/compat/linux/arch/alpha/linux_osf1.c: revision 1.5 sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8 sys/compat/linux32/common/linux32_signal.c: revision 1.21 sys/compat/common/kern_sig_13.c: revision 1.22 sys/compat/sunos32/sunos32_ioctl.c: revision 1.36 sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23 sys/compat/netbsd32/netbsd32_time.c: revision 1.56 sys/compat/linux/common/linux_signal.c: revision 1.84 sys/compat/netbsd32/netbsd32_signal.c: revision 1.52 sys/compat/sunos32/sunos32_misc.c: revision 1.85 sys/compat/linux/common/linux_time.c: revision 1.40 sys/compat/linux/common/linux_fdio.c: revision 1.14 sys/compat/common/vfs_syscalls_30.c: revision 1.43
sys/compat: Memset zero before copyout.
Just in case of uninitialized padding which would lead to kernel stack disclosure. If the compiler can prove the memset redundant then it can optimize it away; otherwise better safe than sorry.
|
1.57.4.3 |
| 08-Mar-2020 |
martin | Pull up following revision(s) (requested by pgoyette in ticket #761):
sys/compat/netbsd32/syscalls.master: revision 1.132 sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.60
Properly mark netbsd32_compat_43 syscalls that are directly implemented by calling their compat_43 equivalents. With these changes, and with built-in versions of COMPAT_NETBSD32, COMPAT_NOMID, and COMPAT_09, I can now run a netbsd-0.9 statically linked i386 (32-bit) version of /bin/ls on a 9.99.x amd64 host!
Addresses PR kern/55047 but more changes coming to handle non-built-in modules.
XXX pullup-9
|
1.57.4.2 |
| 02-Jan-2020 |
martin | Pull up following revision(s) (requested by maxv in ticket #597):
sys/compat/common/kern_sig_43.c: revision 1.36 sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.39 sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.59 sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.44
Fix sizeof mismatch in copyin. This leads to a user-triggerable stack overflow. On my test build at least, by luck, the compiler orders the variables in a way that the overflow hits only local structures which haven't yet been initialized and used, so the overflow is harmless.
Very easily seeable with kASan - just invoke the syscall from a 32bit binary.
Fix three stack info leaks, found by kMSan when just invoking all syscalls with a zero page as argument.
MSan: Uninitialized Stack Memory In copyout() At Offset 0, Variable 'sb32' From compat_20_netbsd32_getfsstat() MSan: Uninitialized Stack Memory In copyout() At Offset 12, Variable 'oss' From compat_43_sys_sigstack() MSan: Uninitialized Stack Memory In copyout() At Offset 0, Variable 'sb' From compat_50_netbsd32___fhstat40()
|
1.57.4.1 |
| 13-Sep-2019 |
martin | Pull up following revision(s) (requested by maxv in ticket #194):
sys/compat/linux/common/linux_socket.c: revision 1.146 sys/compat/linux/common/linux_socket.c: revision 1.147 sys/compat/linux/common/linux_socket.c: revision 1.148 sys/compat/linux/common/linux_socket.c: revision 1.149 sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.59 sys/compat/linux32/common/linux32_sysinfo.c: revision 1.8 sys/kern/sysv_shm.c: revision 1.138 sys/compat/linux/common/linux_file64.c: revision 1.61 sys/compat/linux/common/linux_file64.c: revision 1.62 sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.58 sys/compat/linux32/common/linux32_dirent.c: revision 1.20 sys/compat/linux32/common/linux32_utsname.c: revision 1.10 sys/compat/linux/common/linux_termios.h: revision 1.22 sys/compat/linux32/common/linux32_termios.c: revision 1.15 sys/compat/linux32/common/linux32_misc.c: revision 1.27 sys/compat/linux32/common/linux32_ioctl.c: revision 1.14 sys/compat/linux/common/linux_statfs.h: revision 1.7 sys/compat/linux/common/linux_ipc.c: revision 1.57 sys/compat/linux/common/linux_fcntl.h: revision 1.18 sys/compat/linux/common/linux_socket.h: revision 1.24 sys/sys/shm.h: revision 1.54 sys/compat/ossaudio/ossaudio.c: revision 1.75 sys/compat/linux32/common/linux32_signal.c: revision 1.20 sys/miscfs/procfs/procfs_linux.c: revision 1.75 sys/compat/linux/common/linux_signal.c: revision 1.81 sys/compat/linux/common/linux_termios.c: revision 1.38 sys/compat/linux/common/linux_misc.c: revision 1.241 sys/compat/linux/common/linux_misc.c: revision 1.242 sys/compat/linux/common/linux_misc.c: revision 1.243 sys/compat/linux/common/linux_misc.c: revision 1.244
Fix info leaks.
Fix stupid bugs in linux_sys_shmctl(): the index could be out of bound (page fault) and there was no proper locking. Maybe we should just remove LINUX_SHM_STAT, like compat_linux32.
Remove printf.
When dealing with an unknown value, set -1, to prevent (harmless) uninitialized accesses later.
Add a default case, don't call sys_ioctl() with an uninitialized 'com' argument.
Fix error handling, returns an errno, not -1.
Put the printf under DEBUG_LINUX.
Hum, don't forget the 'pid' argument, otherwise we're not gonna go very far.
Don't read data from userland directly. This simply does not work on any recent x86 CPU (thanks to SMAP) and all architectures that forbid direct access to userland from the kernel. But I guess no one noticed because no one ever uses compat_linux, right?
Hum, don't pass an mbuf to realloc(). Inspired from copyin32_msg_control().
Fix memory leak.
I don't see the point in having this useless printf, but add a '\n' to it, so that it at least displays useless stuff correctly.
Hum, remove incorrect assignment. Userland could have passed a smaller namelen, and the uninitialized bytes from sb_data were being used later in the network stack.
|
1.60.4.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.63.10.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|