From: Norbert Manthey Date: Fri, 26 Feb 2021 14:41:39 +0000 (+0100) Subject: xenstore: handle daemon creation errors X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~770 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=60f0ba136d5a4c88377e28e5eb40606a7f9f6785;p=xen.git xenstore: handle daemon creation errors In rare cases, the path to the daemon socket cannot be created as it is longer than PATH_MAX. Instead of failing with a NULL pointer dereference, terminate the application with an error message. This bug was discovered and resolved using Coverity Static Analysis Security Testing (SAST) by Synopsys, Inc. Signed-off-by: Norbert Manthey Reviewed-by: Thomas Friebel Reviewed-by: Julien Grall Reviewed-by: Juergen Gross --- diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c index 8033c1e0eb..d54a6042a9 100644 --- a/tools/xenstore/xenstored_core.c +++ b/tools/xenstore/xenstored_core.c @@ -2005,6 +2005,9 @@ static void init_sockets(void) struct sockaddr_un addr; const char *soc_str = xs_daemon_socket(); + if (!soc_str) + barf_perror("Failed to obtain xs domain socket"); + /* Create sockets for them to listen to. */ atexit(destroy_fds); sock = socket(PF_UNIX, SOCK_STREAM, 0);