nix v0.23.1 Release Notes
Release Date: 2021-12-16 // 5 months ago-
โ Added
๐ Changed
- โช Relaxed the bitflags requirement from 1.3.1 to 1.1. This partially reverts #1492. From now on, the MSRV is not guaranteed to work with all versions of all dependencies, just with some version of all dependencies. (#1607)
๐ Fixed
- ๐ Fixed soundness issues in
FdSet::insert
,FdSet::remove
, andFdSet::contains
involving file descriptors outside of the range0..FD_SETSIZE
. (#1575)
Previous changes from v0.23.0
-
โ Added
- โ Added the
LocalPeerCred
sockopt. (#1482) - Added
TimeSpec::from_duration
andTimeSpec::from_timespec
(#1465) - โ Added
IPV6_V6ONLY
sockopt. (#1470) - โ Added
impl From<User> for libc::passwd
trait implementation to convert aUser
into alibc::passwd
. Consumes theUser
struct to give ownership over the member pointers. (#1471) - โ Added
pthread_kill
. (#1472) - โ Added
mknodat
. (#1473) - โ Added
setrlimit
andgetrlimit
. (#1302) - โ Added
ptrace::interrupt
method for platforms that supportPTRACE_INTERRUPT
(#1422) - Added
IP6T_SO_ORIGINAL_DST
sockopt. (#1490) - Added the
PTRACE_EVENT_STOP
variant to thesys::ptrace::Event
enum (#1335) - Exposed
SockAddr::from_raw_sockaddr
(#1447) - โ Added
TcpRepair
(#1503) - Enabled
pwritev
andpreadv
for more operating systems. (#1511) - โ Added support for
TCP_MAXSEG
TCP Maximum Segment Size socket options (#1292) - โ Added
Ipv4RecvErr
andIpv6RecvErr
sockopts and associated control messages. (#1514) - โ Added
AsRawFd
implementation onPollFd
. (#1516) - โ Added
Ipv4Ttl
andIpv6Ttl
sockopts. (#1515) - Added
MAP_EXCL
,MAP_ALIGNED_SUPER
, andMAP_CONCEAL
mmap flags, and exposedMAP_ANONYMOUS
for all operating systems. (#1522) (#1525) (#1531) (#1534) - โ Added read/write accessors for 'events' on
PollFd
. (#1517)
๐ Changed
FdSet::{contains, highest, fds}
no longer require a mutable reference. (#1464)- ๐
User::gecos
and correspondinglibc::passwd::pw_gecos
are supported on 64-bit Android, change conditional compilation to include the field in 64-bit Android builds (#1471) - ๐
eventfd
s are supported on Android, change conditional compilation to includesys::eventfd::eventfd
andsys::eventfd::EfdFlags
for Android builds. (#1481) - Most enums that come from C, for example
Errno
, are now marked as#[non_exhaustive]
. (#1474) - Many more functions, mostly contructors, are now
const
. (#1476) (#1492) sys::event::KEvent::filter
now returns aResult
instead of being infalliable. The only cases where it will now return an error are cases where it previously would've had undefined behavior. (#1484)- ๐ Minimum supported Rust version is now 1.46.0. (#1492)
- ๐ Rework
UnixAddr
to encapsulate internals better in order to fix soundness issues. No longer allows creating aUnixAddr
from a rawsockaddr_un
. (#1496) - Raised bitflags to 1.3.0 and the MSRV to 1.46.0. (#1492)
๐ Fixed
posix_fadvise
now returns errors in the conventional way, rather than as a non-zero value inOk()
. (#1538)- โ Added more errno definitions for better backwards compatibility with Nix 0.21.0. (#1467)
- ๐ Fixed potential undefined behavior in
Signal::try_from
on some platforms. (#1484) - ๐ Fixed buffer overflow in
unistd::getgrouplist
. (#1545)
โ Removed
- โ Removed a couple of termios constants on redox that were never actually supported. (#1483)
- โ Removed
nix::sys::signal::NSIG
. It was of dubious utility, and not correct for all platforms. (#1484) - โ Removed support for 32-bit Apple targets, since they've been dropped by both Rustc and Xcode. (#1492)
- Deprecated
SockAddr/InetAddr::to_str
in favor ofToString::to_string
(#1495) - โ Removed
SigevNotify
on OpenBSD and Redox. (#1511)
- โ Added the