Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions criu/socket-uid.patch
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,41 @@ index 69ee8589e..0a60fc5bb 100644
int rfd;
int cpt_reuseaddr;
diff --git a/criu/sk-inet.c b/criu/sk-inet.c
index 422edc656..1597ca5b4 100644
index 566d1c230..a9e9f1aea 100644
--- a/criu/sk-inet.c
+++ b/criu/sk-inet.c
@@ -526,6 +526,8 @@ static int do_dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p, int fa
@@ -272,6 +272,7 @@ static struct inet_sk_desc *gen_uncon_sk(int lfd, const struct fd_parms *p, int

sk->sd.family = family;
sk->type = type;
+ sk->uid = p->stat.st_uid;

if (sk->sd.family == AF_INET)
aux = sizeof(struct sockaddr_in);
@@ -527,6 +528,8 @@ static int do_dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p, int fa
ie.dst_port = sk->dst_port;
ie.backlog = sk->wqlen;
ie.flags = p->flags;
+ ie.uid = userns_uid(sk->uid);
+ ie.has_uid = true;
+ ie.uid = sk->uid;

ie.fown = (FownEntry *)&p->fown;
ie.opts = &skopts;
@@ -678,6 +680,7 @@ int inet_collect_one(struct nlmsghdr *h, int family, int type, struct ns_id *ns)
@@ -679,6 +682,7 @@ int inet_collect_one(struct nlmsghdr *h, int family, int type, struct ns_id *ns)
d->wqlen = m->idiag_wqueue;
memcpy(d->src_addr, m->id.idiag_src, sizeof(u32) * 4);
memcpy(d->dst_addr, m->id.idiag_dst, sizeof(u32) * 4);
+ d->uid = m->idiag_uid;

if (tb[INET_DIAG_SHUTDOWN])
d->shutdown = nla_get_u8(tb[INET_DIAG_SHUTDOWN]);
@@ -890,6 +893,13 @@ static int open_inet_sk(struct file_desc *d, int *new_fd)
@@ -897,6 +901,13 @@ static int open_inet_sk(struct file_desc *d, int *new_fd)
return -1;
}

+ if (ie->has_uid) {
+ if (fchown(sk, ie->uid, -1) < 0) {
+ pr_err("Failed to set socket UID to %u\n", ie->uid);
+ pr_perror("Failed to set socket UID to %u", ie->uid);
+ goto err;
+ }
+ }
Expand Down
Loading