aboutsummaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* libefivar: Add Display Only format for Hard DriveJose Luis Duran38 hours1-4/+8
| | | | | | | | | Ref: UEFI Specification Version 2.1 (Errata D) (released October 2008) Reviewed by: imp, emaste Approved by: emaste (mentor) Obtained from: https://github.com/tianocore/edk2/commit/9e6537469d4700d9d793ee21e9c2f2e7ddbb2176 Differential Revision: https://reviews.freebsd.org/D49060
* libefivar: CodeQL FixesJose Luis Duran38 hours2-154/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | These libefivar files correspond to the following EDK2 Tianocore routines: efivar-dp-format.c -> MdePkg/Library/UefiDevicePathLib/DevicePathToText.c efivar-dp-parse.c -> MdePkg/Library/UefiDevicePathLib/DevicePathFromText.c The following changes were apparently applied upstream to appease their CodeQL workflows on GitHub. Note that some of these changes are logically contradictory, however avoiding differences between the two code bases is a priority, as noted in the review. Commit message from upstream: Includes changes across the repo for the following CodeQL rules: - cpp/comparison-with-wider-type - cpp/overflow-buffer - cpp/redundant-null-check-param - cpp/uselesstest Reviewed by: imp Approved by: emaste (mentor) Obtained from: https://github.com/tianocore/edk2/commit/b7735a087afce6a5157b61e5450b6848ed535a14 Differential Revision: https://reviews.freebsd.org/D49059
* libefivar: Fix sed patternJose Luis Duran38 hours1-1/+1
| | | | | | | | | Add a 'g' flag to allow the replacement to occur more than once on the same line. Reviewed by: imp, emaste Approved by: emaste (mentor) Differential Revision: https://reviews.freebsd.org/D49058
* statfs.2: document missing user-visible MNT flagsKonstantin Belousov43 hours1-0/+18
| | | | | Sponsored by: The FreeBSD Foundation MFC after: 3 days
* statfs.2: order MNT flags alphabeticallyKonstantin Belousov43 hours1-43/+43
| | | | | Sponsored by: The FreeBSD Foundation MFC after: 3 days
* statfs.2: remove dead commentKonstantin Belousov44 hours1-2/+0
| | | | | Sponsored by: The FreeBSD Foundation MFC after: 3 days
* statfs.2: uncomment and describe MNT_IGNOREKonstantin Belousov44 hours1-2/+3
| | | | | Sponsored by: The FreeBSD Foundation MFC after: 3 days
* libsys: Don't create or expose __realpathatBrooks Davis3 days2-1/+1
| | | | | | | | | | | | | | | | Previously, __realpathat was in libc and libsys (as is currently standard), but not exported from libc which meant the stub in libc was not filtered and thus libc's copy of the syscall was used. This broke an upcoming change to CheriBSD limiting syscalls to libsys. The realpath(3) implementation now uses __sys___realpathat so there are no consumers of __realpathat. Switch it to PSEUDO (only _foo and __sys_foo symbols) and remove __realpathat from Symbol.map. This is a corrected version of 58d43a3cd72a4a85ab8489313672c7eab367495e. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49049
* Revert "libsys: Don't create or expose __realpathat"Brooks Davis3 days2-1/+1
| | | | | | This change broke RTLD. Revert while I test a fix. This reverts commit fdccf0336197afe59be6f8859177fe2ff8f87fa6.
* libsys: Don't create or expose __realpathatBrooks Davis3 days2-1/+1
| | | | | | | | | | | | | | Previously, __realpathat was in libc and libsys (as is currently standard), but not exported from libc which meant the stub in libc was not filtered and thus libc's copy of the syscall was used. This broke an upcoming change to CheriBSD limiting syscalls to libsys. The realpath(3) implementation now uses __sys___realpathat so there are no consumers of __realpathat. Switch it to PSEUDO (only _foo and __sys_foo symbols) and remove __realpathat from Symbol.map. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49049
* libc: use __sys___realpathat directly in realpathBrooks Davis3 days1-9/+3
| | | | | | | | | | | | We don't need to use an interposable symbol for this purpose and it's simpler to just call the syscall in libsys. This resolves a bug where we were incorrectly using __realpathat in libc not libsys. While here, drop support for running on a FreeBSD 12 kernel and simplify includes. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D49048
* pf: Add support for multiple source node typesKajetan Staszkiewicz9 days2-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For every state pf creates up to two source nodes: a limiting one struct pf_kstate -> src_node and a NAT one struct pf_kstate -> nat_src_node. The limiting source node is tracking information needed for limits using max-src-states and max-src-nodes and the NAT source node is tracking NAT rules only. On closer inspection some issues emerge: - For route-to rules the redirection decision is stored in the limiting source node. Thus sticky-address and source limiting can't be used separately. - Global source tracking, as promised in the man page, is totally absent from the code. Pfctl is capable of setting flags PFRULE_SRCTRACK (enable source tracking) and PFRULE_RULESRCTRACK (make source tracking per rule). The kernel code checks PFRULE_SRCTRACK but ignores PFRULE_RULESRCTRACK. That makes source tracking work per-rule only. This patch is based on OpenBSD approach where source nodes have a type and each state has an array of source node pointers indexed by source node type instead of just two pointers. The conditions for limiting are applied only to source nodes of PF_SN_LIMIT type. For global limit tracking source nodes are attached to the default rule. Reviewed by: kp Approved by: kp (mentor) Sponsored by: InnoGames GmbH Differential Revision: https://reviews.freebsd.org/D39880
* pf: support "!received-on <interface>"Kristof Provost9 days2-0/+3
| | | | | | | ok dlg benno Obtained from: OpenBSD, henning <henning@openbsd.org>, 7d0482a910 Sponsored by: Rubicon Communications, LLC ("Netgate")
* recv.2: Explain how recv functions can return 0Felix Johnson9 days1-3/+10
| | | | | | | | | | Clarify the RETURN VALUES section with improved structure, the condition of the return value 0, and the setting of errno. PR: 174581 Reviewed by: jhb, ziaee Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D48955
* gpart: Stop documenting freebsd-vinum partition typesJohn Baldwin11 days1-10/+1
| | | | | | | | Support for the partition types is still retained so that tools can display existing partitions. Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D48535
* pf: convert DIOCRDELTABLES to netlinkKristof Provost12 days2-0/+40
| | | | Sponsored by: Rubicon Communications, LLC ("Netgate")
* pf: convert DIOCRADDTABLES to netlinkKristof Provost12 days2-0/+45
| | | | Sponsored by: Rubicon Communications, LLC ("Netgate")
* libvmmapi: Fix auto-loading of vmm.koMark Johnston2025-02-061-10/+12
| | | | | | | | | | | | - We should autoload vmm.ko when creating a VM with vm_openf(), to preserve behaviour prior to commit 99127fd10362. - kldload(2) returns a non-zero value upon success, so the existing code was wrong. Reviewed by: jhb Reported by: olivier Fixes: 99127fd10362 ("libvmmapi: Use the vmmctl device file to create and destroy VMs") Differential Revision: https://reviews.freebsd.org/D48797
* socket: Add an option to retrieve a socket's FIB numberMark Johnston2025-02-061-2/+2
| | | | | | | | | | | | The SO_SETFIB option can be used to set a socket's FIB number, but there is no way to retrieve it. Rename SO_SETFIB to SO_FIB and implement a handler for it for getsockopt(2). Reviewed by: glebius MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D48834
* libopencsd: Remove extra slashesJose Luis Duran2025-02-041-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Remove extra slashes that end up in the metalog. These double slashes can produce an invalid specification file if there are subdirectories down the hierarchy when sorted. For example, consider the following metalog excerpt: ./base/aaa type=dir ./base//aaa/bbb type=dir If sorted, would turn out: ./base//aaa/bbb type=dir ./base/aaa type=dir Apparently missing the ./base/aaa directory in the specification. Luckily here are no subdirectories. Reviewed by: imp, emaste Approved by: emaste (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D48779
* csu tests: Remove extra slashJose Luis Duran2025-02-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Remove an extra slash that ends up in the metalog. This double slash can produce an invalid specification file if there are subdirectories down the hierarchy when sorted. For example, consider the following metalog excerpt: ./base/aaa type=dir ./base//aaa/bbb type=dir If sorted, would turn out: ./base//aaa/bbb type=dir ./base/aaa type=dir Apparently missing the ./base/aaa directory in the specification. Luckily here are no subdirectories. Reviewed by: imp, emaste Approved by: emaste (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D48778
* protosw: this is a kernel only header, put back #ifdef _KERNELGleb Smirnoff2025-02-031-0/+1
| | | | | | | | | | The uncommented #ifdef _KERNEL originates from 1997 by wollman@ (see 57bf258e3dc9e) with no clear original reason. Since these old times two abusers of the header leak were created - libprocstat(3) and netstat(1). These two already have a lot of _WANT_FOO hacks, so satisfy them with _WANT_PROTOSW. While here, cleanup and sort forward declaraions.
* sysent: regen for deletion of gssd_syscall and new ABI for rpctls_syscallGleb Smirnoff2025-02-011-2/+2
|
* rpc: limited multithread support for svc_nlGleb Smirnoff2025-02-011-14/+86
| | | | | | | | | | | | | The rpc(3) itself was not designed with multithreading in mind, but we can actually achieve some parallelism without modifying the library and the framework. This transport will allow to process RPCs in threads, with some hacks on the application side (documented in code). We make reentrable only one method - SVC_REPLY(). Reading and parsing of incoming calls is still done synchronously. But the actual processing of the calls can be offloaded to a thread, and once finished the thread can safely execute svc_sendreply() and the reply would be sent with the correct xid. Differential Revision: https://reviews.freebsd.org/D48569
* kgssapi: remove the gssd_syscallGleb Smirnoff2025-02-013-5/+0
| | | | | Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D48554
* libc/rpc: add userland side RPC server over netlink(4)Gleb Smirnoff2025-02-014-2/+307
| | | | | | | | To be used by NFS related daemons that provide RPC services to the kernel. Some implementation details inside the new svc_nl.c. Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D48550
* nvmf: Add NVMF_CONNECTION_STATUS ioctlJohn Baldwin2025-01-312-0/+12
| | | | | | | | | This returns an nvlist indicating if a Fabrics host is connected and the time of the most recent disconnection. Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48219
* Defer the January 19, 2038 date limit in UFS1 filesystems to February 7, 2106Kirk McKusick2025-01-312-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | UFS1 uses a signed 32-bit value for its times. Zero is January 1, 1970 UTC. Negative values of 32-bit time predate January 1, 1970 back to December 13, 1901. The maximum positive value for 32-bit time is on January 19, 2038 (my 84th birthday). On that date, time will go negative and start registering from December 13, 1901. Note that this issue only affects UFS1 filesystems since UFS2 has 64-bit times. This fix changes UFS1 times from signed to unsigned 32-bit values. With this change it will no longer be possible to represent time from before January 1, 1970, but it will accurately track time until February 7, 2106. Hopefully there will not be any FreeBSD systems using UFS1 still in existence by that time (and by then I will have been dead long enough that no-one will know at whom to yell :-). It is possible that some existing UFS1 systems will have set times predating January 1, 1970. With this commit they will appear as later than the current time. This commit checks inode times when they are read into memory and if they are greater than the current time resets them to the current time. By default this reset happens silently, but setting the sysctl vfs.ffs.prttimechgs=1 will cause console messages to be printed whenever a future time is changed. Reviewed-by: kib Tested-by: Peter Holm MFC-after: 1 week Differential Revision: https://reviews.freebsd.org/D48472
* libiscsiutil: Add log_warnc() and log_errc() functionsJohn Baldwin2025-01-302-0/+26
| | | | | | | | | These are similar to warnc() and errc() in that they take an explicit error code instead of using the value of the errno global. Reviewed by: mav, asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48648
* libdevinfo: Avoid false positives for the root0 sentinel valueJohn Baldwin2025-01-293-3/+3
| | | | | | | | | | | | | | Previously, a NULL pointer value was used to request the root0 device at the top of the device tree. However, this meant that resource ranges from a rman with a NULL device pointer were annotated as being owned by root0 instead of being unowned. Switch to a different value for root0's sentinel to avoid the clash. Since this is an ABI change, bump the SHLIB_MAJOR for libdevinfo to 7. Reported by: jrtc27 Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D48675
* crtend: accurately check for the start of .ctorsKonstantin Belousov2025-01-281-2/+9
| | | | | | | | | | | | For the hypothetic situation where crtbegin.o is not linked into the binary, but crtend.o is, which results in the missing starting sentinel in the ctors array, be careful to not iterate past the start of the section. Reviewed by: andrew, dim Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D48700
* crtbegin: accurately check for the end of .dtorsKonstantin Belousov2025-01-281-1/+9
| | | | | | | | | | | | not relying only on the end section marker, but also checking for the section size when iterating. Reported by: kargl Analyzed by: dim Reviewed by: andrew, dim Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D48700
* Standardize the definition of a UFS dinode.Kirk McKusick2025-01-281-8/+0
| | | | | | | | | | | | | | | | Each program that operates on UFS on-disk inodes defines its own version of a dinode. They all (of necessity) define the same layout but use different names. This change adds a definition of a dinode (a union of a UFS1 on-disk inode and a UFS2 on-disk inode) as well as a dinodep (a union of a pointer to a UFS1 on-disk inode and a pointer to a UFS2 on-disk inode) in sys/ufs/ufs/dinode.h. It then deletes the definitions of dinode and dinodep in all the programs that operate on them and instead uses these standard definitions. No functional change intended. MFC-after: 1 week
* open.2: update description for O_PATHCismonX2025-01-241-2/+14
| | | | | | | | | | | | | | | | | | | | - Add fstatfs(), fchdir(), fchroot(), extattr_*_fd(), cap_*_get(), cap_*_limit() to the list of syscalls that can take an O_PATH fd. - Remove readlinkat() from the list, since it is already discussed in the first few lines of the paragraph. It was originally added to the list when readlinkat() adds support for non-dir fd with an empty relative path (as if with AT_EMPTY_PATH), however, such use case is also discussed in the next paragraph. - Add funlinkat() to the list, since it accepts an extra fd (of the file to be unlinked), which is worth extra mentioning. - Fix a syntax issue which causes a bogus space to be rendered before a closing parentheses. Signed-off-by: CismonX <admin@cismon.net> Reviewed by: markj, jhb MFC after: 2 weeks Pull Request: https://github.com/freebsd/freebsd-src/pull/1564
* iscsi: Move valid_iscsi_name to libiscsiutilJohn Baldwin2025-01-242-0/+74
| | | | | | | | While here, use isxdigit(3) instead of a home-rolled version. Reviewed by: mav, asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48593
* nvmf: Refactor reconnection supportJohn Baldwin2025-01-245-15/+114
| | | | | | | | | | | | | | | | | | | | | | | | Save more data associated with a new association including the network address of the remote controller. This permits reconnecting an association without providing the address or other details. To use this new mode, provide only an existing device ID to nvmecontrol's reconnect command. An address can still be provided to request a different address or other different settings for the new association. The saved data includes an entire Discovery Log page entry to aim to be compatible with other transports in the future. When a remote controller is connected to via a Discovery Log page entry (nvmecontrol connect-all), the raw entry is used. When a remote controller is connected to via an explicit address, an entry is synthesized from the parameters. Note that this is a pseudo-ABI break for the ioctls used by nvmf(4) in that the nvlists for handoff and reconnect now use a slightly different set of elements. Since this is only present in main I did not bother implementing compatability shims. Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48214
* csu: add the "Retain" flag to notes sections flagKonstantin Belousov2025-01-243-3/+3
| | | | | | | | It should make the notes immune against --gc-sections. Reported and tested by: bapt Sponsored by: The FreeBSD Foundation MFC after: 1 week
* pf: add a dedicated pf pool for route optionsKristof Provost2025-01-242-0/+3
| | | | | | | | | | | | As suggested by henning. Which unbreaks ie route-to after the recent pf changes. With much help debugging and pointing out of missing bits from claudio@ ok claudio@ "looks good" henning@ Obtained from: OpenBSD, jsg <jsg@openbsd.org>, 7fa5c09028 Sponsored by: Rubicon Communications, LLC ("Netgate")
* Remove references to gvinum(8) in various manpagesJohn Baldwin2025-01-235-11/+6
| | | | | Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D48540
* libsecureboot/README.rst clarify use of gpgSimon J. Gerraty2025-01-231-4/+13
| | | | | Clarify some language and provide an example of gpg use to generate a detached signature.
* Remove publickey(5) stuffEmmanuel Vadot2025-01-221-1/+1
| | | | | | | | This uses DES and it's likely that nobody uses that in 2025. If somebody uses this we help them by deprecating and removing this. Reviewed by: bapt, emaste Differential Revision: https://reviews.freebsd.org/D30683
* setfib.2: Note that the number of FIBs can be adjusted after bootMark Johnston2025-01-211-4/+9
| | | | | | | | Reviewed by: zlei, imp MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D48545
* libsecureboot add sha384 and sha512 for OpenPGPSimon J. Gerraty2025-01-203-13/+33
| | | | | | | | | | gpg supports SHA384, SHA512 as well as SHA256 so allow for them. Tweak Makefile.inc so we can build libsecureboot with only OpenPGP trust anchors. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D48546
* libsecureboot: Report failure for unsupported hash algorithmHuwyler2025-01-201-0/+1
| | | | | Reviewed by: sjg Pull request: https://github.com/freebsd/freebsd-src/pull/1574
* getentropy tests: Update after commit 473681a1a506daMark Johnston2025-01-191-5/+6
| | | | | | | - Use GETENTROPY_MAX instead of hard-coding the value. - Check for EINVAL instead of EIO Fixes: 473681a1a506 ("libc: Fix getentropy POSIX 2024 conformance issues")
* libc: Fix getentropy POSIX 2024 conformance issuesEd Maste2025-01-172-12/+7
| | | | | | | | | | GETENTROPY_MAX should be defined in limits.h. EINVAL is the return value for buflen > GETENTROPY_MAX. PR: 282783 Reviewed by: markj, asomers, jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D47689
* libc: Add include path for aarch64 memchr.SEd Maste2025-01-171-0/+4
| | | | | | Reported by: bapt Sponsored by: The FreeBSD Foundation Fixes: d355c28a0954 ("depend-cleanup: bea89d038ac5 also moved memchr")
* depend-cleanup: bea89d038ac5 also moved memchrEd Maste2025-01-171-1/+1
| | | | | | | | | | | | Commit bea89d038ac5 added strlcat but also introduced a memchr wrapper in the source tree rather than using the autogenerated one used for AARCH64_STRING_FUNCS. Move memchr.S to MDSRS and add a cleanup rule for the old wrapper. Reviewed by: fuz Sponsored by: The FreeBSD Foundation Fixes: bea89d038ac5 ("lib/libc/aarch64/string: add strlcat SIMD implementation") Differential Revision: https://reviews.freebsd.org/D48502
* Merge llvm-project release/19.x llvmorg-19.1.7-0-gcd708029e0b2Dimitry Andric2025-01-167-15/+15
|\ | | | | | | | | | | | | | | | | This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/19.x llvmorg-19.1.7-0-gcd708029e0b2, a.k.a. 19.1.7 release. PR: 280562 MFC after: 3 days
* | munmap.2: Add STANDARDS and note about portabilityEd Maste2025-01-161-1/+10
| | | | | | | | | | | | | | | | | | | | | | POSIX used to specify that munmap shall fail with EINVAL if the addr argument is not a multiple of the page size, but that was changed to may fail. Note that we conform to contemporary POSIX and include a brief note for portable programs. Reviewed by: brooks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48481