diff --git a/lmkd.c b/lmkd.c index cb9598e..ebcebd6 100644 --- a/lmkd.c +++ b/lmkd.c @@ -397,7 +397,8 @@ static void ctrl_data_handler(uint32_t events) { } static void ctrl_connect_handler(uint32_t events __unused) { - struct sockaddr addr; + struct sockaddr_storage ss; + struct sockaddr *addrp = (struct sockaddr *)&ss; socklen_t alen; struct epoll_event epev; @@ -406,8 +407,8 @@ static void ctrl_connect_handler(uint32_t events __unused) { ctrl_dfd_reopened = 1; } - alen = sizeof(addr); - ctrl_dfd = accept(ctrl_lfd, &addr, &alen); + alen = sizeof(ss); + ctrl_dfd = accept(ctrl_lfd, addrp, &alen); if (ctrl_dfd < 0) { ALOGE("lmkd control socket accept failed; errno=%d", errno);