From: Tycho Andersen Date: Fri, 25 Sep 2015 22:45:59 +0000 (-0600) Subject: cmds: fix abstract socket length problem X-Git-Tag: lxc-1.1.4~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99be748627c54ac5a9af0acdd5050d3d90df4fa8;p=thirdparty%2Flxc.git cmds: fix abstract socket length problem Since we want to use null-terminated abstract sockets, let's compute the length of them correctly. Signed-off-by: Tycho Andersen Acked-by: Stéphane Graber --- diff --git a/src/lxc/commands.c b/src/lxc/commands.c index b70ee7226..a807da38e 100644 --- a/src/lxc/commands.c +++ b/src/lxc/commands.c @@ -279,7 +279,12 @@ static int lxc_cmd(const char *name, struct lxc_cmd_rr *cmd, int *stopped, *stopped = 0; - len = sizeof(path)-1; + /* -2 here because this is an abstract unix socket so it needs a + * leading \0, and we null terminate, so it needs a trailing \0. + * Although null termination isn't required by the API, we do it anyway + * because we print the sockname out sometimes. + */ + len = sizeof(path)-2; if (fill_sock_name(offset, len, name, lxcpath, hashed_sock_name)) return -1; @@ -972,7 +977,12 @@ int lxc_cmd_init(const char *name, struct lxc_handler *handler, char *offset = &path[1]; int len; - len = sizeof(path)-1; + /* -2 here because this is an abstract unix socket so it needs a + * leading \0, and we null terminate, so it needs a trailing \0. + * Although null termination isn't required by the API, we do it anyway + * because we print the sockname out sometimes. + */ + len = sizeof(path)-2; if (fill_sock_name(offset, len, name, lxcpath, NULL)) return -1;