X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fask-password.c;h=9e4d9e7e686be77fcd0fc0b87cbb15586781f637;hp=bcee6863c996e85a22ed2ebfe572fcc2de71ef5d;hb=52661efd21608dc7e0ac26b714a9254ed6180ddb;hpb=3e21c85da365f66582d77eb0a81016c7f43c7762 diff --git a/src/ask-password.c b/src/ask-password.c index bcee6863c..9e4d9e7e6 100644 --- a/src/ask-password.c +++ b/src/ask-password.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "log.h" #include "macro.h" @@ -63,7 +64,7 @@ static int create_socket(char **name) { sa.un.sun_family = AF_UNIX; snprintf(sa.un.sun_path+1, sizeof(sa.un.sun_path)-1, "/org/freedesktop/systemd1/ask-password/%llu", random_ull()); - if (bind(fd, &sa.sa, sizeof(sa_family_t) + 1 + strlen(sa.un.sun_path+1)) < 0) { + if (bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)) < 0) { r = -errno; log_error("bind() failed: %m"); goto fail;