1
0
mirror of https://github.com/openbsd/src.git synced 2024-12-21 23:18:00 -08:00
Commit Graph

3402 Commits

Author SHA1 Message Date
miod
667e8970ce gettytab's dx flag is supposed to set decctlq, which is the opposite of
ixany, but was setting ixany instead.

Fix this by reversing the logic.

Bug report and fix from Piotr Durlej, thanks!
2024-11-09 11:22:18 +00:00
jsg
484eff0184 remove BACK_CHANNEL define, unused since YP bits removed in rev 1.20 2024-09-22 04:19:22 +00:00
bluhm
4538572b6b unveil(2) /etc/gettytab.db in getty(8) to avoid possible violation.
OK deraadt@
2024-07-19 15:28:51 +00:00
yasuoka
671eecb85b Since libcrypto is used to calc message authenticator, use libcrypto
md5 also in other places instead libc md5.

ok millert
2024-07-18 02:45:31 +00:00
yasuoka
3ae2a32a1a Add Message-Authenticator attriubte when sending Access-Request.
ok millert
2024-07-17 20:50:28 +00:00
martijn
c0b7aa147b Allow pfIfTable to have more than 64 entries.
Taken from pfctl_table.c r1.85 by sashan@

OK tb@
2024-07-10 20:33:31 +00:00
afresh1
c5d0954bd6 Silently ignore setuid changes in relinked binaries
If these files are being relinked at reboot, this causes false positives
and alert fatigue.

Prompted by florian@
Feedback from millert@ and deraadt@
2024-06-09 18:31:17 +00:00
deraadt
1457ca8725 enable -fret-clean on amd64, for libc libcrypto ld.so kernel, and all the
ssh tools.  The dynamic objects are entirely ret-clean, static binaries
will contain a blend of cleaning and non-cleaning callers.
2024-06-04 15:14:44 +00:00
martijn
f7af79d427 When localtime() fails, throw an error instead of returning a
non-sensical 0 filled string.

OK florian@
2024-05-22 08:44:02 +00:00
jsg
ce7279d89b remove prototypes with no matching function and externs with no var
partly checked by millert@
2024-05-21 05:00:47 +00:00
jsg
172cfcf8ac remove setproctitle() prototype that matches the one in stdlib.h 2024-05-20 01:05:17 +00:00
jsg
cc45ccb835 remove prototypes with no matching function 2024-05-19 10:30:43 +00:00
deraadt
c694ed72f8 use SIGKILL instead of 9; ok guenther 2024-05-17 06:11:54 +00:00
florian
94c8de5490 ctime(3) and ctime_r(3) can fail when timestamps are way off.
Add missing error checks to all calls under libexec/

Input kettenis, millert
OK millert
2024-05-09 08:35:03 +00:00
florian
73fe6daa50 gmtime(3) / locatime(3) can fail when timestamps are way off.
Add missing error checks to all calls under libexec/

Input & OK millert
2024-04-28 16:42:53 +00:00
deraadt
f7413c6a41 ld.so should stop calling msyscall(2), since it is fully neutered and
about to be removed.  Please be careful building through this, you need
a kernel at least March 29th or so to build through it, otherwise use
snapshots to cross over.
ok various people
2024-04-05 13:51:47 +00:00
millert
834c4ef23a Advertise SMTPUTF8 and 8BITMIME extensions in EHLO.
Fixes potential interoperability issues when the real MTA
supports those extensions.  From Arnt Gulbrandsen, OK benno@
2024-04-01 21:09:44 +00:00
miod
2584d4c056 Prefer illop1 rather than nop for text padding in the ld.so linker script. 2024-03-30 10:42:26 +00:00
miod
e60a0123e7 Remove nonsensical comments. NFC 2024-03-30 08:44:20 +00:00
kn
19f4e8b961 backup disklabel for softraid(4) chunks
Extend "Check for changes to the disklabels of mounted disks" to those that
host online softraid volumes, e.g installations with root inside CRYPTO sd0a
(and EFI System partition on sd0i).

That produces /var/backup/disklabel.sd0.current, previously missing in such
setups;  noticed after someone dd(1)ed miniroot onto sd0 by accident and had
no disklabel(8) backup to restore.

Feedback OK bluhm
2024-03-05 18:54:29 +00:00
deraadt
210cc31ee7 ugly whitespaces 2024-01-22 02:08:31 +00:00
deraadt
a09d28f1ea Stop initializing pinsyscall(SYS_execve in dynamic binaries that contain
a reference reaching the execve(2) stub.  The new pinsyscalls(2) that
applies to all system calls has made this redundant.
2024-01-19 14:16:41 +00:00
deraadt
83447bbcd3 very ugly whitespaces 2024-01-17 13:00:05 +00:00
deraadt
4a066defab Read PT_OPENBSD_SYSCALLS in libc.so, and convert it to a table for
pinsyscalls(2).
ok kettenis
2024-01-16 19:07:31 +00:00
kettenis
5a40d3e097 Whenever we have a libc major bump, we run the risk that dependent shared
libraries will request a different (major) libc version from the one
requested by the binary itself.  For various reasons loading multiple libc
versions is not a good idea, and since the introduction of msyscall(2)
support, system calls will only work when called from one of the two loaded
libcs.  This really means that when we have a libc major bump, users must
update all dynamic executables and shared libraries in the system.

However, to ease this transition, change ld.so to only load the first libc
version that we encounter (in a breadth first sense) and substitute that
libc version for all further loads of libc, even if different versions are
requested.  This is done silently since I can't come up with a good warning
message.  In practice this means the libc version requested by the
executable itself will be loaded.  This means that shared libraries may
fail to load if they use a symbol that has been removed.  But given the
constraints, this is the best that we can do.  Even when we bump the
libc major, the set of changes is typically small and most binaries and
shared libraries will continue to run and allow the user to run pkg_add -u
without any fallout.

ok deraadt@, gkoehler@
2024-01-14 09:39:03 +00:00
deraadt
a346a8255f create a stub for pinsyscalls(2) 2023-12-20 14:54:29 +00:00
deraadt
43ad502097 there is a super-alignment between btext and text, this creates a hole.
Twice, I have seen the sigtramp mapping land inside that hole.  This
causes grief for the upcoming pinsyscalls() work which operates on
address space ranges.  But the micro-optimization is silly.
ok kettenis
2023-12-20 14:52:07 +00:00
deraadt
805b87ea74 For strange reasons which made sense at the time, the text segment was
placed head of the btext (boot.text) segment.  (the boot.text segment is
"unmapped" after initization, as a self-protection mechanism).  this meant
the LOAD's virtual addresses were not in sequence, which clearly isn't
what we intended.
2023-12-20 14:50:08 +00:00
deraadt
434871b630 whitespaces 2023-12-19 16:13:22 +00:00
deraadt
d20ca04b0f correct alignment placement 2023-12-19 06:27:45 +00:00
deraadt
babd3acecf correct section the SYS_kbind syscall pin record goes into
noticed by gnezdo
2023-12-18 17:19:07 +00:00
aoyama
f73a2a9759 Fix phdr name in ld.script.
ok deraadt@
2023-12-16 06:42:38 +00:00
deraadt
2c98d8df2b repair type for 2nd arg of read(2) 2023-12-12 17:39:14 +00:00
deraadt
876ab33d55 To avoid kbind(2) becoming a powerful gadget, it is called inline to a
function.  Therefore we cannot create a precise pinsyscall label.  Instead
create a duplicate entry (using inline asm) to force the kernel's pinsyscall
code to skip validation, rather than labelling it illegal.  kbind(2) remains
safe because it self-protects by checking its calling address.
ok kettenis
2023-12-12 15:44:00 +00:00
deraadt
04459484ef Make sure the syscall table entries are aligned on a 4-byte boundary.
Required for strict-alignment architectures and a good idea on others.
same as kettenis commit to libc
2023-12-11 22:29:23 +00:00
deraadt
a0ef76c2e2 arm just had to be different and change the syntax for .pushsection
arguments, so we have to cope.
2023-12-11 03:05:15 +00:00
deraadt
83762a71f7 Populate the non-LOAD openbsd.syscalls section (and PT_OPENBSD_SYSCALL)
with {uint offset, uint syscall#} entries in libc & ld.so.
In libc a few syscall# entries (break, sigprocmask, _tfork, _threxit)
are duplicated because additional or inline uses occur (that situation
is handled elsewhere)
ok kettenis
2023-12-10 16:45:50 +00:00
deraadt
a4e0416e21 locally us MAXIMUM() rather than MAX()
ok tb gnezdo
2023-12-08 12:58:27 +00:00
miod
6750a6d9ed Move CALLSYS_NOERROR macro from <machine/asm.h> to libc, and expand it for
non-libc users. This is a two-liner macro anyway, and this will make
deraadt@'s future changes in this area easier to make. NFC
2023-12-06 06:15:33 +00:00
martijn
41a3185cb2 Set sc_rtfilter to specific ROUTE_FILTER() values, as was originally
intended, instead of filtering out everything.

OK sthen@
2023-11-21 08:49:08 +00:00
deraadt
1e43641e99 crt0 uses a helper function in a MD src/libexec/ld.so .h file (rather than
reproducing the relevant defines and code in a different place) to perform
minor relocations.  If things go very wrong, it would call _dl_exit() --
a locally defined crt0 function which is syscall exit(2).  We don't need
to call exit(2) for this obscure case which doesn't happen and provides no
debugging information. An 'abort' is going to provide better information.
So let's change the function name to _dso_abort() and make it a single
illegal instruction.
ok guenther
2023-11-18 16:26:15 +00:00
martijn
494a7cf854 Make hrSWRunPath use argv[0], instead of p_comm. hrSWRunName is supposed
to be a descriptive name, where hrSWRunPath should give the full path to
the binary. While argv[0] can contain any of a simple binary name, the
full path, or a custom name given by the application itself, it gives us
the option to retrieve both pieces of information. This is also the
same distinction made by netsnmp.

This also keeps the default command column from top(1) and snmptop in
sync, and now allows for identical output in the column between `top -C`
and `snmptop -Cpa`

OK tb@
2023-10-24 18:27:26 +00:00
martijn
56081d37f3 Add support for HOST-RESOURCES-MIB:hrSWRunPerfTable by adding
hrSWRunPerfCPU and hrSWRunPerfMem. This allows snmptop to work with
snmpd(8). Math copied from top(1).

OK tb@
2023-10-24 18:16:05 +00:00
jca
1b3607db00 Log a dummy "<unknown>" IP address in the unlikely event that genameinfo(3) fails
clang-16 warning reported by robert@, ok tb@ millert@
2023-09-05 16:01:58 +00:00
deraadt
b75a4ace29 ldd can pledge "stdio rpath proc exec prot_exec". We can later bifurbicate
at the dlopen vs execve split, dropping either "proc" or "prot_exec".
ok gnezdo
2023-08-15 13:50:53 +00:00
guenther
ac42b3c848 Improve handling of dlopen(RTLD_TRACE) aka ldd, of a library that
is already loaded:
 * add a 'trace' argument to _dl_show_objects() and exit the
   walk-the-objects loop if you hit that traced object
 * in dlopen(), pass the trace object to _dl_show_objects()
 * also, invoke _dl_show_objects() + exit if the object was
   already opened
 * pass NULL to _dl_show_objects() for all the other calls
 * oh hey, _dl_tracelib is now superfluous: _dl_show_objects()
   should do the walk-the-objects loop only if trace is not NULL.

Problem noted by gnezdo@
ok millert@
2023-08-15 06:26:34 +00:00
guenther
15fded6337 Skip the _dl_msyscall() invocation if tracing library loading.
Problem noted by gnezdo@
ok millert@
2023-08-15 06:23:31 +00:00
gnezdo
d4a5aacda4 Check for a full read, avoid warn when errno might be unmodified
Promote size from int to size_t.

From: lucas at sexy dot is

Regress tests by gnezdo@

deraadt: yes
2023-08-12 13:43:22 +00:00
deraadt
f61db8b983 I added the 2nd argument (execpromises) to pledge(2), and then hunted
for more than a year code which could use it; but in all non-trivial
circumstances (programs which would benefit), I was stopped by issues
(in particular by environment variable behavious).  But I never looked
in ldd(1).  This is the FIRST one which is completely obvious.
spledge(NULL, "stdio rpath")
ok guenther
2023-07-24 01:02:47 +00:00
jasper
fbc4293659 - use IS_ELF() to check the ELF magic bytes
- reject non-sensical program header values which would result in a crash
  when accessing the 0 bytes sized buffer allocated due to it

ok deraadt@ kettenis@
2023-07-13 19:04:50 +00:00