1
0
mirror of https://github.com/systemd/systemd synced 2026-04-26 17:04:50 +02:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Yu Watanabe
ad11dd94fd README: mention kernel requirement for ambient capabilities
Closes #23231.
2022-05-06 09:33:49 +01:00
Khem Raj
0dd5ec58fa resolve: Use sockaddr pointer type for bind()
bind() expects sockaddr* but SERVER_ADDRESS is sockaddr_in type struct

Fixes errors with clang e.g.

../git/src/resolve/test-resolved-stream.c:112:32: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
        assert_se(bind(bindfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0);
                               ^~~~~~~~~~~~~~~
../git/src/resolve/test-resolved-stream.c:251:39: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
                r = connect(clientfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS));

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-06 17:29:59 +09:00
Thomas Weißschuh
15d4c239f4 userdbctl: initialize parameter n for uid_range_load_userns()
uid_range_load_userns() dereferences the n parameter.

Passing unitialized memory may lead to crashes, for example with version
251rc2-1 on ArchLinux.
2022-05-06 13:48:51 +09:00
3 changed files with 5 additions and 4 deletions

1
README
View File

@ -31,6 +31,7 @@ LICENSE:
REQUIREMENTS: REQUIREMENTS:
Linux kernel ≥ 3.15 Linux kernel ≥ 3.15
≥ 4.3 for ambient capabilities
≥ 4.5 for pids controller in cgroup v2 ≥ 4.5 for pids controller in cgroup v2
≥ 4.6 for cgroup namespaces ≥ 4.6 for cgroup namespaces
≥ 4.9 for RENAME_NOREPLACE support in vfat ≥ 4.9 for RENAME_NOREPLACE support in vfat

View File

@ -110,7 +110,7 @@ static void *tcp_dns_server(void *p) {
assert_se((bindfd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) >= 0); assert_se((bindfd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) >= 0);
assert_se(setsockopt(bindfd, SOL_SOCKET, SO_REUSEADDR, &(int){1}, sizeof(int)) >= 0); assert_se(setsockopt(bindfd, SOL_SOCKET, SO_REUSEADDR, &(int){1}, sizeof(int)) >= 0);
assert_se(bind(bindfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0); assert_se(bind(bindfd, (struct sockaddr*)&SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0);
assert_se(listen(bindfd, 1) >= 0); assert_se(listen(bindfd, 1) >= 0);
assert_se((acceptfd = accept(bindfd, NULL, NULL)) >= 0); assert_se((acceptfd = accept(bindfd, NULL, NULL)) >= 0);
server_handle(acceptfd); server_handle(acceptfd);
@ -247,7 +247,7 @@ static void test_dns_stream(bool tls) {
assert_se((clientfd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) >= 0); assert_se((clientfd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) >= 0);
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
r = connect(clientfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)); r = connect(clientfd, (struct sockaddr*)&SERVER_ADDRESS, sizeof(SERVER_ADDRESS));
if (r >= 0) if (r >= 0)
break; break;
usleep(EVENT_TIMEOUT_USEC / 100); usleep(EVENT_TIMEOUT_USEC / 100);

View File

@ -431,7 +431,7 @@ static int display_user(int argc, char *argv[], void *userdata) {
if (table) { if (table) {
_cleanup_free_ UidRange *uid_range = NULL; _cleanup_free_ UidRange *uid_range = NULL;
int boundary_lines, uid_map_lines; int boundary_lines, uid_map_lines;
size_t n_uid_range; size_t n_uid_range = 0;
r = uid_range_load_userns(&uid_range, &n_uid_range, "/proc/self/uid_map"); r = uid_range_load_userns(&uid_range, &n_uid_range, "/proc/self/uid_map");
if (r < 0) if (r < 0)
@ -740,7 +740,7 @@ static int display_group(int argc, char *argv[], void *userdata) {
if (table) { if (table) {
_cleanup_free_ UidRange *gid_range = NULL; _cleanup_free_ UidRange *gid_range = NULL;
int boundary_lines, gid_map_lines; int boundary_lines, gid_map_lines;
size_t n_gid_range; size_t n_gid_range = 0;
r = uid_range_load_userns(&gid_range, &n_gid_range, "/proc/self/gid_map"); r = uid_range_load_userns(&gid_range, &n_gid_range, "/proc/self/gid_map");
if (r < 0) if (r < 0)