Error out early if the path to the socket will not fit into
sockaddr_un::sun_path, as we will not be able to connect to it.
---
src/launch-unix.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/launch-unix.c b/src/launch-unix.c
index 740c554..973e14b 100644
--- a/src/launch-unix.c
+++ b/src/launch-unix.c
@@ -47,6 +47,12 @@ launch_unix (guestfs_h *g, void *datav, const char *sockpath)
return -1;
}
+ if (strlen (sockpath) > UNIX_PATH_MAX-1) {
+ error (g, _("socket filename too long (more than %d characters): %s"),
+ UNIX_PATH_MAX-1, sockpath);
+ return -1;
+ }
+
if (g->verbose)
guestfs_int_print_timestamped_message (g, "connecting to %s", sockpath);
--
2.5.0