[dpdk-dev] [PATCH] vhost: add note about sockets in server mode
Maxime Coquelin
maxime.coquelin at redhat.com
Tue Mar 6 10:06:53 CET 2018
Hi Ilya,
On 02/26/2018 09:39 AM, Ilya Maximets wrote:
> From time to time, someone sends patches about unlinking existing
> sockets when registering a vhost user in server mode.
>
> A recent example:
> http://dpdk.org/ml/archives/dev/2018-February/090025.html
>
> This problem has been discussed many times, and it was made clear that
> the library should not unlink files given by the application in order
> to avoid possible security problems, such as removing random files
> used by other programs.
>
> One of the first discussions:
> http://dpdk.org/ml/archives/dev/2015-December/030326.html
>
> To avoid such patches in the future, it was decided to add a comment
> that explains what is happening and tries to describe the reasoning.
>
> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
> ---
>
> I'm open for suggestions. Wording/grammar fixes are also welcome.
>
> lib/librte_vhost/socket.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
> index 83befdc..e8584f3 100644
> --- a/lib/librte_vhost/socket.c
> +++ b/lib/librte_vhost/socket.c
> @@ -318,6 +318,16 @@ vhost_user_start_server(struct vhost_user_socket *vsocket)
> int fd = vsocket->socket_fd;
> const char *path = vsocket->path;
>
> + /*
> + * bind () may fail if the socket file with the same name already
> + * exists. But the library obviously should not delete the file
> + * provided by the user, since we can not be sure that it is not
> + * being used by other applications. Moreover, many applications form
> + * socket names based on user input, which is prone to errors.
> + *
> + * The user must ensure that the socket does not exist before
> + * registering the vhost driver in server mode.
> + */
> ret = bind(fd, (struct sockaddr *)&vsocket->un, sizeof(vsocket->un));
> if (ret < 0) {
> RTE_LOG(ERR, VHOST_CONFIG,
>
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
Thanks!
Maxime
More information about the dev
mailing list