From 7f2272d3d31c85630b3f264ac7e800f15aac4ed1 Mon Sep 17 00:00:00 2001 From: Elizabeth Myers Date: Sat, 2 Apr 2016 21:13:44 -0500 Subject: [PATCH] opm: properly check for duplicate listeners --- authd/providers/opm.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/authd/providers/opm.c b/authd/providers/opm.c index 9aa29fa8..e93143d0 100644 --- a/authd/providers/opm.c +++ b/authd/providers/opm.c @@ -506,6 +506,8 @@ create_listener(const char *ip, uint16_t port) exit(EX_PROVIDER_ERROR); } + SET_SS_PORT(&addr, htons(port)); + #ifdef RB_IPV6 if(GET_SS_FAMILY(&addr) == AF_INET6) { @@ -557,14 +559,6 @@ create_listener(const char *ip, uint16_t port) exit(EX_PROVIDER_ERROR); } - /* Set up ports for binding */ -#ifdef RB_IPV6 - if(GET_SS_FAMILY(&addr) == AF_INET6) - ((struct sockaddr_in6 *)&addr)->sin6_port = htons(port); - else -#endif - ((struct sockaddr_in *)&addr)->sin_port = htons(port); - if(bind(rb_get_fd(F), (struct sockaddr *)&addr, GET_SS_LEN(&addr))) { /* Shit happens, let's not cripple authd over /this/ since it could be user error */