summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-04Merge #1416bors[bot]
1416: Use memoffset::offset_of instead of homegrown macro r=asomers a=asomers The homegrown macro was fine in 2016, but at some point it technically became UB. The memoffset crate does the same thing, but avoids UB when using rustc 1.51.0 or later. Fixes #1415 Co-authored-by: Alan Somers <asomers@gmail.com>
2021-04-04Merge #1409bors[bot]
1409: unistd: Increase maximum passwd/group buffer to 1MB r=asomers a=geofft We have one UNIX group that contains most of our users whose size is about 20 kB, so `Group::from_name` is failing with ERANGE. The discussion on PR #864 suggests that 1 MB is a reasonable maximum - it follows what FreeBSD's libc does. (glibc appears to have no maximum on the _r function and will just double the buffer until malloc fails, but that's not particularly Rusty.) Co-authored-by: Geoffrey Thomas <geofft@twosigma.com>
2021-04-04Use memoffset::offset_of instead of homegrown macroAlan Somers
The homegrown macro was fine in 2016, but at some point it technically became UB. The memoffset crate does the same thing, but avoids UB when using rustc 1.51.0 or later. Fixes #1415
2021-03-25unistd: Increase maximum passwd/group buffer to 1MBGeoffrey Thomas
We have one UNIX group that contains most of our users whose size is about 20 kB, so `Group::from_name` is failing with ERANGE. The discussion on PR #864 suggests that 1 MB is a reasonable maximum - it follows what FreeBSD's libc does. (glibc appears to have no maximum on the _r function and will just double the buffer until malloc fails, but that's not particularly Rusty.)
2021-03-24Merge #1401bors[bot]
1401: cleanup: remove redundant unwrap in Dir::from_fd r=asomers a=scottlamb Co-authored-by: Scott Lamb <slamb@slamb.org>
2021-03-23Merge #1406bors[bot]
1406: Allow cmsg_space! to be used in unit tests r=asomers a=WiSaGaN Fixes https://github.com/nix-rust/nix/issues/1405 Co-authored-by: Lu, Wangshan <wisagan@gmail.com>
2021-03-23Merge #1407bors[bot]
1407: Fix test_vsock failure on VMADDR_CID_LOCAL testing and re-enable it r=asomers a=stefano-garzarella Starting from Linux 5.6, `VMADDR_CID_LOCAL` is supported to do local communication (loopback device). Before Linux 5.6 it was called `VMADDR_CID_RESERVED` and was not supported, so we could expect an `EADDRNOTAVAIL`, but now this address is supported and handled by the 'vsock_loopback' kernel module loaded automatically if no other vsock transports are loaded. Issue #1310 Issue #1403 Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Co-authored-by: Stefano Garzarella <sgarzare@redhat.com>
2021-03-23Allow cmsg_space! to be used in unit testsLu, Wangshan
2021-03-22Revert "Temporarily disable test_vsock on QEMU arches"Stefano Garzarella
This reverts commit c0783e7f8d55a7725179afc1b3c8eeae932d228c. Now the test should work correctly, so we can re-enable it. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2021-03-22Fix test_vsock failure on VMADDR_CID_LOCAL testingStefano Garzarella
Starting from Linux 5.6, VMADDR_CID_LOCAL is supported to do local communication (loopback device). Before Linux 5.6 it was called VMADDR_CID_RESERVED and was not supported, so we could expect an EADDRNOTAVAIL, but now this address is supported and handled by the 'vsock_loopback' kernel module loaded automatically if no other vsock transports are loaded. Issue #1310 Issue #1403 Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2021-03-21Merge #1394bors[bot]
1394: illumos and Solaris support r=asomers a=jasonbking Adds support for the illumos target as well as improvements in the existing Solaris support. Co-authored-by: Dominik Hassler <hadfl@omnios.org> Co-authored-by: Joshua M. Clulow <josh@sysmgr.org> Co-authored-by: Jason King <jason.brian.king@gmail.com>
2021-03-21cleanup: remove redundant unwrap in Dir::from_fdScott Lamb
2021-03-21illumos and Solaris supportJason King
Co-authored-by: Dominik Hassler <hadfl@omnios.org> Co-authored-by: Joshua M. Clulow <josh@sysmgr.org>
2021-03-21Merge #1404bors[bot]
1404: Temporarily disable test_vsock on QEMU arches r=asomers a=asomers Issue #1403 Co-authored-by: Alan Somers <asomers@gmail.com>
2021-03-21Temporarily disable test_vsock on QEMU archesAlan Somers
Issue #1403
2021-03-06Merge #1395bors[bot]
1395: Allow sockaddr_ll size mismatch r=asomers a=internetionals Apparently the Linux kernel can return smaller sizes when the value in the last element of sockaddr_ll (`sll_addr`) is smaller than the declared size of that field. Co-authored-by: Justin Ossevoort <github@internetionals.nl>
2021-03-05Allow sockaddr_ll size mismatchJustin Ossevoort
Apparently the Linux kernel can return smaller sizes when the value in the last element of sockaddr_ll (`sll_addr`) is smaller than the declared size of that field.
2021-03-04Merge pull request #1398 from asomers/s390x-dupAlan Somers
Remove a duplicate stanza from .cirrus.yml
2021-03-04Remove a duplicate stanza from .cirrus.ymlAlan Somers
2021-03-04Merge pull request #1399 from asomers/accept4-androidAlan Somers
Remove accept4 on Android arm
2021-03-04Remove accept4 on Android armAlan Somers
libc removed it in version 0.2.87. https://github.com/rust-lang/libc/pull/2079
2021-02-23Merge pull request #1392 from asomers/docker_builderAlan Somers
During CI, use just 1 cpu for QEMU builds
2021-02-23During CI, use just 1 cpu for QEMU buildsAlan Somers
https://github.com/cirruslabs/cirrus-ci-docs/issues/741
2021-02-21Merge #1390bors[bot]
1390: pty: Make forkpty() unsafe r=asomers a=tavianator After the child returns from a fork() of a multi-threaded process, it is undefined behaviour to call non-async-signal-safe functions according to POSIX. Since forkpty() is implemented in terms of fork(), those restrictions should apply to it too. Fixes #1388 Co-authored-by: Tavian Barnes <tavianator@tavianator.com>
2021-02-20Merge pull request #1391 from asomers/update-depsAlan Somers
Various maintenance stuff
2021-02-20pty: Make forkpty() unsafeTavian Barnes
After the child returns from a fork() of a multi-threaded process, it is undefined behaviour to call non-async-signal-safe functions according to POSIX. Since forkpty() is implemented in terms of fork(), those restrictions should apply to it too.
2021-02-20Update rand to 0.8Alan Somers
This eliminates some duplicate dependencies
2021-02-20Update tempfile dev dependencyAlan Somers
This eliminates the need to build multiple versions of cfg-if
2021-02-20Fix a non_fmt_panic warning with Rustc 1.52.0Alan Somers
2021-02-20[skip ci] add a new CHANGELOG sectionAlan Somers
2021-02-20Merge pull request #1389 from asomers/r0.20.0Alan Somers
Prepare for release 0.20.0
2021-02-20Prepare for release 0.20.0Alan Somers
2021-02-20[skip ci] reformat CHANGELOGAlan Somers
2021-02-20Merge #1381bors[bot]
1381: Close file descriptor on drop in TimerFd r=asomers a=crdumoul This change closes the TimerFd file descriptor on drop. Note that the TimerFd will no longer be `Clone` or `Copy`. Since it has a destructor it can't be `Copy`, and if it were `Clone` you could end up trying to use a closed TimerFd, or double-closing the file descriptor. Addresses #1379. Co-authored-by: Christopher Dumoulin <cdumouli@akamai.com> Co-authored-by: Alan Somers <asomers@gmail.com>
2021-02-20Merge branch 'master' into timerfd-file-leakAlan Somers
2021-02-20Merge #1366bors[bot]
1366: x32 port r=asomers a=nabijaczleweli I played pretty loose with the statfs bit, hoping for CI to tell me if I broke something. Co-authored-by: наб <nabijaczleweli@nabijaczleweli.xyz>
2021-02-16Close file descriptor on drop in TimerFdChristopher Dumoulin
2021-02-15Log x32 fixesнаб
2021-02-15Bump caps to 0.5.1. Add x32 to CI for cross-builds and Tier 3 list in READMEнаб
2021-02-15Fix test_ptrace_syscall() on x32наб
Based on https://github.com/nix-rust/nix/issues/1384#issuecomment-774708486
2021-02-15Port statfs to x32наб
2021-02-15Port timespec to x32наб
2021-02-15Port sysinfo to x32наб
2021-02-15Port mqueue to x32наб
Test fix obtained from https://github.com/nix-rust/nix/issues/1384#issuecomment-774708486
2021-02-15Merge #1333bors[bot]
1333: Dir: Implement `IntoIterator` for `Dir` r=asomers a=wmanley This is useful to allow returning an iterator based on a directory iterator without needing a self-referential struct. Co-authored-by: William Manley <will@stb-tester.com>
2021-02-15Dir: Implement `IntoIterator` for `Dir`William Manley
This is useful to allow returning an iterator based on a directory iterator without needing a self-referential struct.
2021-02-15Merge #1387bors[bot]
1387: fix(unsafe): remove unnecessary unsafe r=asomers a=matu3ba libc 0.2.82 exposes status signals with macros generating safe functions Co-authored-by: Jan Philipp Hafer <jan.hafer@rwth-aachen.de>
2021-02-14fix(unsafe): remove unnecessary unsafeJan Philipp Hafer
closes #1380 libc 0.2.82 exposes status signals with macros generating safe functions
2021-02-14cargo formatJan Philipp Hafer
2021-02-13Merge #1382bors[bot]
1382: Don't implement Clone on Dir, SignalFd, and PtyMaster r=asomers a=asomers Since they close their file descriptors on Drop, it's almost impossible to use Clone without creating a double-close situation. Also, check for EBADF in SignalFd::drop and Dir::drop. Co-authored-by: Alan Somers <asomers@gmail.com>