Commit 1f94837a authored by Pavel Emelyanov's avatar Pavel Emelyanov

sk: Sanitize socket's fowner and flags restore

The conn job misses fowner restoratio. Other places are ok, but toss
the code for easier next patching.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent bd6e8df4
......@@ -915,9 +915,6 @@ static int open_inet_sk(struct file_desc *d)
return -1;
}
if (restore_fown(sk, &ii->ie.fown))
goto err;
/*
* Listen sockets are easiest ones -- simply
* bind() and listen(), and that's all.
......@@ -981,6 +978,8 @@ static int open_inet_sk(struct file_desc *d)
if (set_fd_flags(sk, ii->ie.flags))
return -1;
if (restore_fown(sk, &ii->ie.fown))
goto err;
return sk;
......@@ -1175,6 +1174,8 @@ try_again:
if (set_fd_flags(fle->fe.fd, ui->ue.flags))
return -1;
if (restore_fown(fle->fe.fd, &ui->ue.fown))
return -1;
cj = cj->next;
}
......@@ -1237,17 +1238,12 @@ static int open_unixsk_pair_master(struct unix_sk_info *ui)
if (restore_sk_queue(sk[1], ui->ue.id))
return -1;
if (set_fd_flags(sk[0], ui->ue.flags))
return -1;
if (set_fd_flags(sk[1], peer->ue.flags))
if (bind_unix_sk(sk[0], ui))
return -1;
if (restore_fown(sk[0], &ui->ue.fown))
return -1;
if (restore_fown(sk[1], &peer->ue.fown))
if (set_fd_flags(sk[0], ui->ue.flags))
return -1;
if (bind_unix_sk(sk[0], ui))
if (restore_fown(sk[0], &ui->ue.fown))
return -1;
tsk = socket(PF_UNIX, SOCK_DGRAM, 0);
......@@ -1288,6 +1284,10 @@ static int open_unixsk_pair_slave(struct unix_sk_info *ui)
if (bind_unix_sk(sk, ui))
return -1;
if (set_fd_flags(sk, ui->ue.flags))
return -1;
if (restore_fown(sk, &ui->ue.fown))
return -1;
return sk;
}
......@@ -1304,9 +1304,6 @@ static int open_unixsk_standalone(struct unix_sk_info *ui)
return -1;
}
if (restore_fown(sk, &ui->ue.fown))
return -1;
if (bind_unix_sk(sk, ui))
return -1;
......@@ -1316,6 +1313,11 @@ static int open_unixsk_standalone(struct unix_sk_info *ui)
pr_perror("Can't make usk listen");
return -1;
}
if (set_fd_flags(sk, ui->ue.flags))
return -1;
if (restore_fown(sk, &ui->ue.fown))
return -1;
} else if (ui->peer) {
pr_info("\tWill connect %#x to %#x later\n", ui->ue.id, ui->ue.peer);
if (schedule_conn_job(ui))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment