1
0
mirror of https://github.com/openbsd/src.git synced 2025-01-02 14:25:36 -08:00
Commit Graph

1009 Commits

Author SHA1 Message Date
miod
ce1663765c a.out is no longer the commonly encountered binary file format, the world has
moved to ELF.

Move the a.out specific defines and macros, but the MID_xxx values, from
<sys/exec.h> to <a.out.h>, and update the few userland binaries which really
need these defines (i.e. boot-related tools for old architectures) to
explicitly include <a.out.h> when needed.

"Fine" deraadt@
2024-10-16 18:47:47 +00:00
guenther
f2ddd4444c dladdr(3) is in POSIX-2024, though the structure type was renamed
to match Solaris and _not_ match glibc/BSDs and no one caught it
before publication.  Provide the new name but keep providing the
existing names under the same conditions as before.  Update #include
visibility and dlfcn(3) manpage and add restrict qualifiers.

ok deraadt@
2024-09-01 04:27:45 +00:00
bluhm
4491bd9062 Evaluate arguments of bitstring macros only once.
According to bit_alloc(3) man page the arguments to bitstring macros
are evaluated only once and may safely have side effects.  Fix the
implementation with temporary variables to fulfill this requirement.

OK florian@ deraadt@
2024-08-26 11:52:54 +00:00
guenther
24f9d669f8 Add <stdio_ext.h> with the seven APIs needed to have gnulib operate
without poking directly into the FILE structure.

Repeated testing, "nope, need a few more" feedback, and ok tb@
2024-08-12 20:56:55 +00:00
guenther
bcac9d59b1 asprintf() and vasprintf() are in POSIX-2024. Update #include
visibility and manpages and add restrict qualifiers in all the
specified places to the *printf family.

ok millert@
2024-08-07 05:15:28 +00:00
guenther
e490037411 wcslcpy() and wcslcat() are in POSIX-2024. Update #include visibility
and manpages and add restrict qualifiers.

ok millert@
2024-08-07 04:59:45 +00:00
guenther
4af81b37ce The improbable occurred: strlcpy(3) and strlcat(3) are in POSIX-2024.
memmem(3) was also added.  Update #include visibility and manpages
and add restrict qualifiers.

"never thought I'd see this day" millert@
2024-08-03 20:13:23 +00:00
guenther
dfc5f6fe81 mkostemp(3) and reallocarray(3) are in POSIX-2024:
adjust #include visibility and update the reallocarray(3) manpage

ok millert@
2024-08-03 20:09:24 +00:00
guenther
04933f16a0 The {get,set}res[ug]id(2) family are in POSIX-2024's XSI option,
so adjust the #include visibility and update the manpage.

ok millert@
2024-08-02 22:14:54 +00:00
guenther
c1d8b5d1f7 getentropy(2) is in POSIX-2024, so adjust the #include visibility,
change the "too much" error to EINVAL, add GETENTROPY_MAX to
<limits.h> (via sys/syslimits.h), and update the manpage.

ok deraadt@
2024-08-02 01:53:21 +00:00
jca
4ee4ae6a4d Add wcsnlen(3) declaration, missed in previous. 2024-07-14 10:04:17 +00:00
otto
bc8a30fccf strmode takes a mode_t, not an int; prompted by Collin Funk.
ok kettenis@ deraadt@ tb@
2024-06-23 07:08:26 +00:00
ratchov
4aaef610e0 sndio: Add a display string to the sioctl_open API
For hardware devices, add a server.device control
with a single item and the device name as display
string.

Add the necessary sndioctl(1) bits to print it.
2024-05-24 15:10:26 +00:00
guenther
5f31b145b2 Add pathconfat(2): pathconf(2) but with at-fd and flags arguments,
the latter supporting the ability to get timestamp resolution of
symlinks.

ok deraadt@ millert@
2024-05-18 05:20:22 +00:00
florian
b5a3756551 Add scandirat(3); from freebsd
To be used in httpd(8) shortly to prevent toctu issues.

This makes __fdopendir internally accessible to avoid unnecessary
syscalls in scandirat(3). Suggested & diff by guenther

suggested by & OK millert
tweak & OK guenther
OK tb, jca

This rides the libc crank.
2024-04-15 15:47:58 +00:00
millert
1aa88f2b27 Add mkdtemps(3), like mkdtemp(3) but with a suffix.
OK deraadt@ tb@
2024-03-01 21:30:40 +00:00
jca
0967fc9724 Move ctype.h defines to the _CTYPE_ prefix, avoids clashes with identifiers in ports
Even if those _[BCNLPSUX] defines are in the reserved namespace, some
ports make use of those identifiers and thus need pointless
headscratching and patches.  Just use a longer reserved prefix.
We can't just #undef those defines as they are used in libc.

Change similar to what NetBSD did around 2010.  Went through base builds
and an amd64 bulk build, the only fallout was lib(e)stdc++ base_ctype.h.
"make includes" will install the latest ctype.h and libstdc++ ctype_base.h.

"makes sense" deraadt@, ok sthen@ tb@
2024-02-04 13:03:18 +00:00
deraadt
cafeb892b1 remove support for syscall(2) -- the "indirection system call" because
it is a dangerous alternative entry point for all system calls, and thus
incompatible with the precision system call entry point scheme we are
heading towards.  This has been a 3-year mission:
First perl needed a code-generated wrapper to fake syscall(2) as a giant
switch table, then all the ports were cleaned with relatively minor fixes,
except for "go".  "go" required two fixes -- 1) a framework issue with
old library versions, and 2) like perl, a fake syscall(2) wrapper to
handle ioctl(2) and sysctl(2) because "syscall(SYS_ioctl" occurs all over
the place in the "go" ecosystem because the "go developers" are plan9-loving
unix-hating folk who tried to build an ecosystem without allowing "ioctl".
ok kettenis, jsing, afresh1, sthen
2023-12-12 15:30:55 +00:00
miod
9b42e9bf97 Make sure TIB_INIT correctly initializes tib_thread_flags; regression
introduced in 1.3, causing sporadic pthread_main_np() erroneous results
(and possibly more subtle problems).

With and ok kurt@
2023-12-08 19:14:36 +00:00
schwarze
ee97048084 According to the C11 standard, char32_t and char16_t are not part
of the C language but are part of the C library and have to be
declared in <uchar.h> - see paragraph 7.28.2.

In stark contrast, according to the C++11 standard, char32_t and char16_t
are part of the C++ language, namely, keywords - see paragraph 2.12.1.
Consequently, they must not be declared in a header file.

To resolve this vile contradiction, use the predefined macro __cplusplus
to find out which language is in use for the current compilation unit -
see C11 paragraph 6.10.8.3 and C++11 paragraph 16.8.1.

Reminded of the problem by naddy@.
OK naddy@ who tested in make build / make release.
Looks reasonable to millert@.
2023-09-05 23:16:01 +00:00
schwarze
46c354aa2b Provide C11 <uchar.h>.
OK millert@.
Tested by naddy@ in a bulk and by matthieu@ in the new foot(1) port.
I originally wrote the code in 2022 at the prodding of espie@.
Using one improvement to a manual page from jmc@.
2023-08-20 15:02:50 +00:00
guenther
cef5a146e6 Add {get,set}thrname(2) for putting thread names in the kernel and
exposed in a new field returned by sysctl(KERN_PROC).  Update
pthread_{get,set}_name_np(3) to use the syscalls.  Show them, when
set, in ps -H and top -H output.

libc and libpthread minor bumps

ok mpi@, mvs@, deraadt@
2023-01-07 05:24:58 +00:00
jsg
893695cea0 Christos Zoulas agreed to rescind clause 3 and 4 in
NetBSD fsck.8 rev 1.35 fsutil.h rev 1.14 pathnames.h rev 1.2
netgroup_mkdb.8 rev 1.9 netgroup_mkdb.c rev 1.18 str.c rev 1.7
str.h rev 1.4 rdate.8 rev 1.11 rdate.c rev 1.19 extern.h rev 1.14
getnetgrent.c rev 1.41 netgroup.h rev 1.10
fparseln.3 rev 1.4 fparseln.c rev 1.10

our stringlist.c/stringlist.h are derived from getnetgrent.c
rfc868time.c from rdate.c
newfs/pathnames.h from fsck/pathnames.h

https://mail-index.netbsd.org/source-changes/2009/10/21/msg002182.html
Not all files are covered as some had copyright assigned to TNF in 1998.
2023-01-04 13:00:11 +00:00
jmc
2811b70e6c spelling fixes; from paul tagliamonte 2022-12-27 07:44:56 +00:00
millert
3d0c28f3eb Move CLOCKS_PER_SEC to sys/_time.h so the kernel has access to it.
This will be used in waitid(2) to set si_utime and si_stime.
The definition of struct timespec also moves from time.h to sys/_time.h
for struct itimerspec.  OK kettenis@
2022-10-25 16:30:30 +00:00
krw
5b146c4de6 Remove now unused and unreferenced disktab.h. 2022-08-31 11:04:41 +00:00
krw
55a3ec3029 Nuke disktab.h references in preparation for nuking disktab.h.
disktab.h has not been used or useful for a looooong time.

Detailed historical research by jsg@.

ok jsg@ deraadt@
2022-08-30 18:50:06 +00:00
tb
c1d0be48fa Add #define for RTLD_NOLOAD missed in last ld.so commit. 2022-08-20 17:39:22 +00:00
guenther
e0b9be3e0f POSIX 2008 TC2 requires <inttypes.h> to provide wchar_t
ok kettenis@ espie@
2022-07-31 01:27:31 +00:00
deraadt
91fc4dda8d Add a new clnt*_control CLSET_CONNECTED, which says the socket has already
been connected.  In the udp case, this means to use send(), not sendto()
ok jmatthew, claudio, miod
2022-07-15 17:33:28 +00:00
ratchov
ec8a3410fb Add sio_flush(3) function to stop playback immediately
The new sio_flush(3) functions works the same way as sio_stop(3),
except that it doesn't wait for play buffer to be drained. Instead,
it discards its contents and returns immediately.
2022-04-29 08:30:48 +00:00
tedu
805ea04014 add rtable capability to login.conf.
from Matthew Martin
2022-03-01 01:22:11 +00:00
guenther
8d4335cb9b Mark all the rpc 'ops' vectors, for auth, client, service, and xdr,
as const, moving them from .data to .data.rel.ro.  The other BSDs
did this a long time ago; NetBSD did a chunk in 1998, which is long
enough I didn't bother to get exact dates for others.

ok deraadt@ millert@
2022-02-14 03:38:59 +00:00
robert
d7bd1adbda introduce support for storing capability databases in /etc/login.conf.d;
anytime a class is looked up, the /etc/login.conf.d/${class} file will be
checked first for a matching class definition; this will allow us to easily
add custom login classes from packages

ok millert@
2022-02-10 13:06:07 +00:00
guenther
47e938601b When it's the possessive of 'it', it's spelled "its", without the
apostrophe.

one from miod, other by "never just one" vibe
2022-01-28 04:59:15 +00:00
millert
6a97098401 funopen(): change seekfn argument to use off_t, not fpos_t
On BSD, fpos_t is typedef'd to off_t but some systems use a struct.
This means fpos_t is not a portable function argument or return value.
Both FreeBSD and the Linux libbsd funopen() have switched to off_t
for this--we should too.  From Joe Nelson.  OK deraadt@
2022-01-05 20:57:27 +00:00
djm
832bedbc19 Niels agreed to remove the advertising clause; switching these
to 3-term BSD license.
2021-11-29 01:04:45 +00:00
jca
931108e92d Implement rfc6840 (AD flag processing) if using trusted name servers
libc can't do DNSSEC validation but it can ask a "security-aware"
resolver to do so.  Let's send queries with the AD flag set when
appropriate, and let applications look at the AD flag in responses in
a safe way, ie clear the AD flag if the resolvers aren't trusted.
By default we only trust resolvers if resolv.conf(5) only lists name
servers on localhost - the obvious candidates being unwind(8) and
unbound(8).  For non-localhost resolvers, an admin who trusts *all the
name servers* listed in resolv.conf(5) *and the network path leading to
them* can annotate this with "options trust-ad".

AD flag processing gives ssh -o VerifyHostkeyDNS=Yes a chance to fetch
SSHFP records in a secure manner, and tightens the situation for other
applications, eg those using RES_USE_DNSSEC for DANE.  It should be
noted that postfix currently assumes trusted name servers by default and
forces RES_TRUSTAD if available.

RES_TRUSTAD and "options trust-ad" were first introduced in glibc by
Florian Weimer.  Florian Obser (florian@) contributed various
improvements, fixed a bug and added automatic trust for name servers on
localhost.

ok florian@ phessler@
2021-11-22 20:18:27 +00:00
mortimer
66e500ce5d Enable libexecinfo.
With some build plumbing help from jsg@

ok kettenis@ sthen@
2021-06-09 19:44:55 +00:00
deraadt
c0455c86ed secure_path(3) hasn't been called since we recognized the TOCTOU issues a few
years back, so we can remove it.  Since nothing in the ecosystem calls it, I
am not cranking the libc major as required, surely another crank will come
along soon.
noticed by Dante Catalfamo
ok millert
2021-06-03 13:19:45 +00:00
semarie
296fbf9f7d add RTLD_NODELETE support
if RTLD_NODELETE isn't POSIX, it is widely deployed: at least linux,
freebsd, dragonfly, netbsd, solaris, illumos, apple, and fuchsia have
it.

ok kettenis@ on previous version
with help from and ok guenther@

diff partially inspired from a diff from brad@
2021-06-02 07:29:03 +00:00
mortimer
9be7043ffd Rearrange variables in dump / restore to handle -fno-common.
Largely following the commit by mckusick in FreeBSD.

ok naddy@
2021-01-21 00:16:36 +00:00
patrick
f950054f2b Move Makefiles for libc++ and libc++abi to gnu/lib in preparation for an
upcoming update to those, which will see both codebases heading into the
gnu/llvm dumpster.

Feedback from jsg@
ok deraadt@ kettenis@
2021-01-02 20:04:36 +00:00
martijn
e7a945d3c0 Hook up agentx.h.
OK deraadt@
2020-10-26 15:50:31 +00:00
naddy
cf6da2c267 Align the basename(3) and dirname(3) prototypes with the POSIX spec:
Both functions take a non-const parameter.  Implementations may modify
the passed string, even though ours do not.

ok stsp@ deraadt@ millert@
2020-10-20 19:30:14 +00:00
naddy
464c6a2fbf add format string checking annotations for dprintf(3) and vdprintf(3)
ok millert@ deraadt@
2020-09-11 17:56:41 +00:00
millert
9f1f2f9e44 Use __STDC_VERSION__ instead of __ISO_C_VISIBLE to guard _Static_assert.
We need to test what the compiler supports, not what the C library
provides.  This prevents static_assert from being defined when compiling
with the in-tree gcc (4.2.1) which does not support _Static_assert.
2020-09-06 12:57:25 +00:00
bentley
18b823aed1 Add C11's static_assert.
tested in a bulk by naddy@
previously submitted by jsg@ and Martin Wanvik
ok millert@
2020-09-05 10:41:31 +00:00
kettenis
874055c7f0 Fix TIB/TCB on powerpc64. Some bright sould decided that the TCB should
be 8 bytes in the 64-bit ABI just like in the 32-bit ABI.  But that means
there is no "spare" word in the TCB that we can use to store a pointer
to our struct pthread.  So we have to treat powerpc64 special.

Also recognize that the thread pointer points 0x7000 bytes after the TCB.
Since the TCB is 8 bytes this means that TCB_OFFSET should be 0x7008.

Pointed out by guenther@; ok deraadt@
2020-07-14 16:48:13 +00:00
ratchov
4f3fcc3939 Allow switching between alternate devices (-F option) with sndioctl(1) 2020-06-28 05:21:38 +00:00