From f8d30a4f96d6c3a12e692d2e69b8fe4734b916c6 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Mon, 30 Mar 2015 14:57:16 +0100 Subject: virtfs-proxy-helper: fail gracefully if socket path is too long Replace the assertion check with graceful failure when the socket path is too long. Programs should not crash on invalid input. Print an error message and exit properly. Cc: Shannon Zhao Signed-off-by: Stefan Hajnoczi Signed-off-by: Aneesh Kumar K.V --- fsdev/virtfs-proxy-helper.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'fsdev') diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c index 91e8b9b7f1..9097d15c98 100644 --- a/fsdev/virtfs-proxy-helper.c +++ b/fsdev/virtfs-proxy-helper.c @@ -739,7 +739,12 @@ static int proxy_socket(const char *path, uid_t uid, gid_t gid) return -1; } - g_assert(strlen(path) < sizeof(proxy.sun_path)); + if (strlen(path) >= sizeof(proxy.sun_path)) { + do_log(LOG_CRIT, "UNIX domain socket path exceeds %zu characters\n", + sizeof(proxy.sun_path)); + return -1; + } + sock = socket(AF_UNIX, SOCK_STREAM, 0); if (sock < 0) { do_perror("socket"); -- cgit v1.2.1