Blame


1 677d90f7 2021-03-12 op /*
2 677d90f7 2021-03-12 op * Copyright (c) 2021 Omar Polo <op@omarpolo.com>
3 677d90f7 2021-03-12 op *
4 677d90f7 2021-03-12 op * Permission to use, copy, modify, and distribute this software for any
5 677d90f7 2021-03-12 op * purpose with or without fee is hereby granted, provided that the above
6 677d90f7 2021-03-12 op * copyright notice and this permission notice appear in all copies.
7 677d90f7 2021-03-12 op *
8 677d90f7 2021-03-12 op * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 677d90f7 2021-03-12 op * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 677d90f7 2021-03-12 op * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 677d90f7 2021-03-12 op * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 677d90f7 2021-03-12 op * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 677d90f7 2021-03-12 op * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 677d90f7 2021-03-12 op * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 677d90f7 2021-03-12 op */
16 677d90f7 2021-03-12 op
17 4b877649 2021-10-07 op #include "fs.h"
18 754622a2 2021-03-15 op #include "telescope.h"
19 677d90f7 2021-03-12 op
20 677d90f7 2021-03-12 op #ifdef __OpenBSD__
21 677d90f7 2021-03-12 op
22 35e1f40a 2021-03-14 op # include <limits.h>
23 35e1f40a 2021-03-14 op # include <stdlib.h>
24 35e1f40a 2021-03-14 op # include <string.h>
25 2b1f38ab 2021-03-13 op # include <unistd.h>
26 2b1f38ab 2021-03-13 op
27 677d90f7 2021-03-12 op void
28 17c10c65 2021-07-12 op sandbox_net_process(void)
29 677d90f7 2021-03-12 op {
30 677d90f7 2021-03-12 op if (pledge("stdio inet dns", NULL) == -1)
31 677d90f7 2021-03-12 op err(1, "pledge");
32 677d90f7 2021-03-12 op }
33 677d90f7 2021-03-12 op
34 b1d4d01b 2021-03-14 op void
35 b1d4d01b 2021-03-14 op sandbox_ui_process(void)
36 b1d4d01b 2021-03-14 op {
37 de2a69bb 2021-05-17 op if (pledge("stdio tty recvfd", NULL) == -1)
38 b1d4d01b 2021-03-14 op err(1, "pledge");
39 b1d4d01b 2021-03-14 op }
40 b1d4d01b 2021-03-14 op
41 35e1f40a 2021-03-14 op void
42 35e1f40a 2021-03-14 op sandbox_fs_process(void)
43 35e1f40a 2021-03-14 op {
44 35e1f40a 2021-03-14 op char path[PATH_MAX];
45 35e1f40a 2021-03-14 op
46 de2a69bb 2021-05-17 op if (unveil("/tmp", "rwc") == -1)
47 35e1f40a 2021-03-14 op err(1, "unveil");
48 35e1f40a 2021-03-14 op
49 35e1f40a 2021-03-14 op strlcpy(path, getenv("HOME"), sizeof(path));
50 35e1f40a 2021-03-14 op strlcat(path, "/Downloads", sizeof(path));
51 6845bee7 2021-09-13 op if (unveil(path, "rwc") == -1)
52 fd0beb53 2021-10-07 op err(1, "unveil(%s)", path);
53 35e1f40a 2021-03-14 op
54 4b877649 2021-10-07 op if (unveil(config_path_base, "rwc") == -1)
55 fd0beb53 2021-10-07 op err(1, "unveil(%s)", config_path_base);
56 35e1f40a 2021-03-14 op
57 4b877649 2021-10-07 op if (unveil(data_path_base, "rwc") == -1)
58 fd0beb53 2021-10-07 op err(1, "unveil(%s)", data_path_base);
59 4b877649 2021-10-07 op
60 4b877649 2021-10-07 op if (unveil(cache_path_base, "rwc") == -1)
61 fd0beb53 2021-10-07 op err(1, "unveil(%s)", cache_path_base);
62 4b877649 2021-10-07 op
63 de2a69bb 2021-05-17 op if (pledge("stdio rpath wpath cpath sendfd", NULL) == -1)
64 35e1f40a 2021-03-14 op err(1, "pledge");
65 35e1f40a 2021-03-14 op }
66 35e1f40a 2021-03-14 op
67 68a9b7d2 2021-03-13 op #else
68 68a9b7d2 2021-03-13 op
69 68a9b7d2 2021-03-13 op #warning "No sandbox for this OS"
70 68a9b7d2 2021-03-13 op
71 68a9b7d2 2021-03-13 op void
72 17c10c65 2021-07-12 op sandbox_net_process(void)
73 68a9b7d2 2021-03-13 op {
74 68a9b7d2 2021-03-13 op return;
75 68a9b7d2 2021-03-13 op }
76 68a9b7d2 2021-03-13 op
77 35e1f40a 2021-03-14 op void
78 35e1f40a 2021-03-14 op sandbox_ui_process(void)
79 35e1f40a 2021-03-14 op {
80 35e1f40a 2021-03-14 op return;
81 35e1f40a 2021-03-14 op }
82 35e1f40a 2021-03-14 op
83 35e1f40a 2021-03-14 op void
84 35e1f40a 2021-03-14 op sandbox_fs_process(void)
85 35e1f40a 2021-03-14 op {
86 35e1f40a 2021-03-14 op return;
87 35e1f40a 2021-03-14 op }
88 35e1f40a 2021-03-14 op
89 677d90f7 2021-03-12 op #endif