"Right-click, save page as" fails every time here. The main process is
killed with getpw pledge.
Debug information below, but considering the main process already
has things like rpath and exec, I don't think "read-only opening of
files in /etc for the getpwnam(3), getgrnam(3), getgrouplist(3), and
initgroups(3) family of functions" makes things any worse, so OK to add
getpw?
Index: Makefile
===================================================================
RCS file: /cvs/ports/www/mozilla-firefox/Makefile,v
retrieving revision 1.350
diff -u -p -r1.350 Makefile
--- Makefile 11 May 2018 20:09:01 -0000 1.350
+++ Makefile 16 May 2018 12:13:08 -0000
@@ -9,6 +9,7 @@ MOZILLA_VERSION = 60.0
MOZILLA_BRANCH = release
MOZILLA_PROJECT = firefox
MOZILLA_CODENAME = browser
+REVISION = 0
WRKDIST = ${WRKDIR}/${MOZILLA_DIST}-${MOZILLA_DIST_VERSION:C/b[0-9]*//}
HOMEPAGE = https://www.mozilla.org/firefox/
Index: files/all-openbsd.js
===================================================================
RCS file: /cvs/ports/www/mozilla-firefox/files/all-openbsd.js,v
retrieving revision 1.5
diff -u -p -r1.5 all-openbsd.js
--- files/all-openbsd.js 11 May 2018 20:00:57 -0000 1.5
+++ files/all-openbsd.js 16 May 2018 12:13:08 -0000
@@ -7,7 +7,7 @@ pref("browser.safebrowsing.malware.enabl
pref("spellchecker.dictionary_path", "${LOCALBASE}/share/mozilla-dicts/");
// enable pledging the content process
pref("security.sandbox.content.level", 1);
-pref("security.sandbox.pledge.main","stdio rpath wpath cpath inet proc exec
prot_exec flock ps sendfd recvfd dns vminfo tty drm unix fattr");
+pref("security.sandbox.pledge.main","stdio rpath wpath cpath inet proc exec
prot_exec flock ps sendfd recvfd dns vminfo tty drm unix fattr getpw");
pref("security.sandbox.pledge.content","stdio rpath wpath cpath inet recvfd
sendfd prot_exec unix drm ps");
pref("extensions.pocket.enabled", false);
pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
89056 firefox RET kbind 0
89056 firefox RET clock_gettime 0
89056 firefox CALL kbind(0x7f7ffffcb360,24,0x93525348bc1e3741)
89056 firefox CALL clock_gettime(CLOCK_MONOTONIC,0x10207f88da68)
89056 firefox RET clock_gettime 0
89056 firefox RET kbind 0
89056 firefox CALL getfsstat(0,0,0x2<MNT_SYNCHRONOUS>)
89056 firefox RET getfsstat 19/0x13
89056 firefox CALL getfsstat(0x1020ebd0a000,0x2a28,0x2<MNT_SYNCHRONOUS>)
89056 firefox RET getfsstat 19/0x13
89056 firefox CALL clock_gettime(CLOCK_MONOTONIC,0x10207f88dcb8)
89056 firefox RET clock_gettime 0
89056 firefox CALL clock_gettime(CLOCK_MONOTONIC,0x10207f88da68)
89056 firefox RET clock_gettime 0
89056 firefox CALL clock_gettime(CLOCK_MONOTONIC,0x10207f88dcb8)
89056 firefox RET clock_gettime 0
89056 firefox CALL kbind(0x7f7ffffcb360,24,0x93525348bc1e3741)
89056 firefox RET kbind 0
89056 firefox CALL kbind(0x7f7ffffcb260,24,0x93525348bc1e3741)
89056 firefox RET kbind 0
89056 firefox CALL kbind(0x7f7ffffcb260,24,0x93525348bc1e3741)
89056 firefox CALL clock_gettime(CLOCK_MONOTONIC,0x10207f88e7a8)
89056 firefox RET kbind 0
89056 firefox RET clock_gettime 0
89056 firefox CALL kbind(0x7f7ffffcb1b0,24,0x93525348bc1e3741)
89056 firefox RET kbind 0
89056 firefox CALL access(0x10212d275380,0x4<R_OK>)
89056 firefox PLDG access, "getpw", errno 0 Undefined error: 0
Here's the first couple of dozen entries in backtrace, I didn't bother
with the other 68.
(gdb) bt
#0 access () at -:3
#1 0x000001e893898d54 in __initdb (shadow=0) at
/usr/src/lib/libc/gen/getpwent.c:922
#2 0x000001e89389966e in getpwnam_internal (name=0x7f7ffffe0310 "sthen",
pw=0x7f7ffffdc080, buf=0x1e7e8b62000 '\337' <repeats 199 times>, <incomplete
sequence \337>..., buflen=1024, pwretp=0x7f7ffffdc0c8, shadow=0) at
/usr/src/lib/libc/gen/getpwent.c:710
#3 0x000001e7a134dc29 in g_get_user_database_entry () at gutils.c:657
#4 0x000001e7a134db69 in g_get_user_name () at gutils.c:764
#5 0x000001e7d0859e7c in g_unix_mount_guess_should_display
(mount_entry=0x1e84795bfc0) at gunixmounts.c:2697
#6 0x000001e7d0858254 in _g_unix_mount_new (volume_monitor=0x1e7a1b3f9e0,
mount_entry=0x1e84795bfc0, volume=0x0) at gunixmount.c:122
#7 0x000001e7d085c020 in update_mounts (monitor=<optimized out>) at
gunixvolumemonitor.c:404
#8 0x000001e856ead95a in g_type_create_instance (type=<optimized out>) at
gtype.c:1866
#9 0x000001e856e9ad44 in g_object_new_internal (class=0x1e7c84a7600,
params=0x0, n_params=0) at gobject.c:1799
#10 0x000001e856e9a561 in g_object_new_with_properties (object_type=<optimized
out>, n_properties=0, names=<optimized out>, values=<optimized out>) at
gobject.c:1967
#11 g_object_new (object_type=2094304143488, first_property_name=<optimized
out>) at gobject.c:1639
#12 0x000001e7d07ef49c in populate_union_monitor (union_monitor=0x1e7ab59d490)
at gunionvolumemonitor.c:519
#13 g_volume_monitor_get () at gunionvolumemonitor.c:571
#14 0x000001e7f20b101e in create_volume_monitor (sidebar=0x1e7bc67d300) at
gtkplacessidebar.c:3994
#15 gtk_places_sidebar_init (sidebar=0x1e7bc67d300) at gtkplacessidebar.c:4051
#16 0x000001e856ead95a in g_type_create_instance (type=<optimized out>) at
gtype.c:1866
#17 0x000001e856e9ad44 in g_object_new_internal (class=0x1e82ed6f000,
params=0x0, n_params=0) at gobject.c:1799
#18 0x000001e856e9b28e in g_object_newv (object_type=2097542873344,
n_parameters=0, parameters=0x0) at gobject.c:2036
#19 0x000001e7f1f3b8d5 in _gtk_builder_construct (builder=0x1e8468f0f90,
info=0x1e7e0137520, error=0x7f7ffffdc750) at gtkbuilder.c:718
#20 0x000001e7f1f41057 in parse_custom (context=<optimized out>,
element_name=<optimized out>, names=<optimized out>, values=<optimized out>,
data=<optimized out>, error=0x7f7ffffdc750) at gtkbuilderparser.c:878
#21 start_element (context=0x1e7a37a1a00, element_name=0x1e864a64de0 "style",
names=<optimized out>, values=0x7f7ffffdc710, user_data=0x1e815fb3d00,
error=0x7f7ffffdc750) at gtkbuilderparser.c:985
#22 0x000001e7a131c79e in emit_start_element (context=0x1e7a37a1a00,
error=0x7f7ffffdc898) at gmarkup.c:1041
#23 0x000001e7a131aec9 in g_markup_parse_context_parse (context=0x1e7a37a1a00,
text=<optimized out>, text_len=<optimized out>, error=0x7f7ffffdc898) at
gmarkup.c:1388
#24 0x000001e7f1f3fcb5 in _gtk_builder_parser_parse_buffer
(builder=0x1e8468f0f90, filename=<optimized out>,
buffer=0x1e7a77b6000 "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n<interface domain=\"gtk30\">\n <!-- interface-requires
gtk+ 3.10 -->\n <!-- interface-requires gtkprivate 3.10 -->\n <template
class=\"GtkFileChooserWidget\" parent="..., length=28921, requested_objs=0x0,
error=0x7f7ffffdc898)
at gtkbuilderparser.c:1261
Maybe another clue, if I add the pledge I get a few of these printed
after the point where it was killed by pledge:
(firefox:45264): Gtk-WARNING **: 13:15:59.648: Failed to measure available
space: The specified location is not supported