Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
HardenedBSD
HardenedBSD
Commits
8a656309
Commit
8a656309
authored
May 23, 2018
by
Matt Macy
Browse files
kern_sendit: use pre-initialized rights
parent
983afe33
Changes
3
Hide whitespace changes
Inline
Side-by-side
sys/kern/subr_capability.c
View file @
8a656309
...
...
@@ -92,6 +92,7 @@ __read_mostly cap_rights_t cap_renameat_source_rights;
__read_mostly
cap_rights_t
cap_renameat_target_rights
;
__read_mostly
cap_rights_t
cap_seek_rights
;
__read_mostly
cap_rights_t
cap_send_rights
;
__read_mostly
cap_rights_t
cap_send_connect_rights
;
__read_mostly
cap_rights_t
cap_setsockopt_rights
;
__read_mostly
cap_rights_t
cap_shutdown_rights
;
__read_mostly
cap_rights_t
cap_symlinkat_rights
;
...
...
@@ -140,6 +141,7 @@ __cap_rights_sysinit1(void *arg)
cap_rights_init
(
&
cap_renameat_target_rights
,
CAP_RENAMEAT_TARGET
);
cap_rights_init
(
&
cap_seek_rights
,
CAP_SEEK
);
cap_rights_init
(
&
cap_send_rights
,
CAP_SEND
);
cap_rights_init
(
&
cap_send_connect_rights
,
CAP_SEND
,
CAP_CONNECT
);
cap_rights_init
(
&
cap_setsockopt_rights
,
CAP_SETSOCKOPT
);
cap_rights_init
(
&
cap_shutdown_rights
,
CAP_SHUTDOWN
);
cap_rights_init
(
&
cap_symlinkat_rights
,
CAP_SYMLINKAT
);
...
...
sys/kern/uipc_syscalls.c
View file @
8a656309
...
...
@@ -722,7 +722,7 @@ kern_sendit(struct thread *td, int s, struct msghdr *mp, int flags,
struct
uio
auio
;
struct
iovec
*
iov
;
struct
socket
*
so
;
cap_rights_t
rights
;
cap_rights_t
*
rights
;
#ifdef KTRACE
struct
uio
*
ktruio
=
NULL
;
#endif
...
...
@@ -730,12 +730,12 @@ kern_sendit(struct thread *td, int s, struct msghdr *mp, int flags,
int
i
,
error
;
AUDIT_ARG_FD
(
s
);
cap_
rights
_init
(
&
rights
,
CAP_SEND
)
;
rights
=
&
cap_send_rights
;
if
(
mp
->
msg_name
!=
NULL
)
{
AUDIT_ARG_SOCKADDR
(
td
,
AT_FDCWD
,
mp
->
msg_name
);
cap_
rights
_set
(
&
rights
,
CAP_CONNECT
)
;
rights
=
&
cap_send_connect_rights
;
}
error
=
getsock_cap
(
td
,
s
,
&
rights
,
&
fp
,
NULL
,
NULL
);
error
=
getsock_cap
(
td
,
s
,
rights
,
&
fp
,
NULL
,
NULL
);
if
(
error
!=
0
)
{
m_freem
(
control
);
return
(
error
);
...
...
sys/sys/capsicum.h
View file @
8a656309
...
...
@@ -441,6 +441,7 @@ extern cap_rights_t cap_renameat_source_rights;
extern
cap_rights_t
cap_renameat_target_rights
;
extern
cap_rights_t
cap_seek_rights
;
extern
cap_rights_t
cap_send_rights
;
extern
cap_rights_t
cap_send_connect_rights
;
extern
cap_rights_t
cap_setsockopt_rights
;
extern
cap_rights_t
cap_shutdown_rights
;
extern
cap_rights_t
cap_symlinkat_rights
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment