untrusted comment: verify with openbsd-74-base.pub RWRoyQmAD08ajXjcin1pp4Tjr/m3D3WptDeh01xRf2szPGUj6bJWqqBTJFiXJ2EZGC03ZELG34Ohc8fmj5aU9E1Biml9UM8yowQ= OpenBSD 7.4 errata 003, November 21, 2023: patch(1) with explicit patchfile did not work in 7.4 due to overeager unveil(2) restrictions. Apply by doing: signify -Vep /etc/signify/openbsd-74-base.pub -x 003_patch.patch.sig \ -m - | (cd /usr/src && patch -p0) And then rebuild and install patch(1): cd /usr/src/usr.bin/patch make obj make make install Index: usr.bin/patch/patch.c =================================================================== RCS file: /cvs/src/usr.bin/patch/patch.c,v diff -u -p -r1.74 patch.c --- usr.bin/patch/patch.c 19 Jul 2023 13:26:20 -0000 1.74 +++ usr.bin/patch/patch.c 30 Oct 2023 14:55:52 -0000 @@ -32,6 +32,7 @@ #include #include +#include #include #include #include @@ -213,11 +214,27 @@ main(int argc, char *argv[]) perror("unveil"); my_exit(2); } - if (filearg[0] != NULL) + if (filearg[0] != NULL) { + char *origdir; + if (unveil(filearg[0], "rwc") == -1) { perror("unveil"); my_exit(2); } + if ((origdir = dirname(filearg[0])) == NULL) { + perror("dirname"); + my_exit(2); + } + if (unveil(origdir, "rwc") == -1) { + perror("unveil"); + my_exit(2); + } + } else { + if (unveil(".", "rwc") == -1) { + perror("unveil"); + my_exit(2); + } + } if (filearg[1] != NULL) if (unveil(filearg[1], "r") == -1) { perror("unveil"); @@ -228,10 +245,6 @@ main(int argc, char *argv[]) perror("unveil"); my_exit(2); } - if (unveil(".", "rwc") == -1) { - perror("unveil"); - my_exit(2); - } if (*rejname != '\0') if (unveil(rejname, "rwc") == -1) { perror("unveil");