X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fvconn-unix.c;h=f296ad7f7adac508d84b2b8be089644f4a33c269;hb=b6eb6bc746ebeee6027929e142f00b72fef57656;hp=9b08b10efbdd9ebf49bf7d25a80be8866e1a3d49;hpb=f593e3ab70ab06acbf97cbb0a9f897dc4f078011;p=sliver-openvswitch.git diff --git a/lib/vconn-unix.c b/lib/vconn-unix.c index 9b08b10ef..f296ad7f7 100644 --- a/lib/vconn-unix.c +++ b/lib/vconn-unix.c @@ -114,12 +114,11 @@ punix_accept(int fd, const struct sockaddr *sa, size_t sa_len, struct vconn **vconnp) { const struct sockaddr_un *sun = (const struct sockaddr_un *) sa; + int name_len = get_unix_name_len(sa_len); char name[128]; - if (sa_len >= offsetof(struct sockaddr_un, sun_path)) { - snprintf(name, sizeof name, "unix:%.*s", - (int) (sa_len - offsetof(struct sockaddr_un, sun_path)), - sun->sun_path); + if (name_len > 0) { + snprintf(name, sizeof name, "unix:%.*s", name_len, sun->sun_path); } else { strcpy(name, "unix"); }