diff options
author | Damien Miller <djm@mindrot.org> | 2000-01-17 15:23:01 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-01-17 15:23:01 +1100 |
commit | 19fe9c7fd8e4a0e68f943f86b8164683fe327479 (patch) | |
tree | 404c99566de33d2cce89003b8a9bd766cb0eccb2 /bsd-bindresvport.c | |
parent | e219273f93fe94aa188591803be5b9a71afc338a (diff) |
- Fix rresvport_af failure errors (logic error in bsd-bindresvport.c)
Diffstat (limited to 'bsd-bindresvport.c')
-rw-r--r-- | bsd-bindresvport.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/bsd-bindresvport.c b/bsd-bindresvport.c index 0e91d2658..04780673b 100644 --- a/bsd-bindresvport.c +++ b/bsd-bindresvport.c | |||
@@ -84,17 +84,17 @@ bindresvport_af(sd, sa, af) | |||
84 | sa->sa_family = af; | 84 | sa->sa_family = af; |
85 | 85 | ||
86 | if (*portp == 0) | 86 | if (*portp == 0) |
87 | *portp = (arc4random() % NPORTS) + STARTPORT; | 87 | *portp = (u_int16_t)(arc4random() % NPORTS) + STARTPORT; |
88 | 88 | ||
89 | for(i = 0; i < NPORTS; i++) { | 89 | for(i = 0; i < NPORTS; i++) { |
90 | error = bind(sd, sa, salen); | 90 | error = bind(sd, sa, salen); |
91 | 91 | ||
92 | /* Terminate on success */ | 92 | /* Terminate on success */ |
93 | if (error == 0) | 93 | if (error == 0) |
94 | break; | 94 | break; |
95 | 95 | ||
96 | /* Terminate on errors, except "address already in use" */ | 96 | /* Terminate on errors, except "address already in use" */ |
97 | if ((error < 0) && ((errno != EADDRINUSE) || (errno != EINVAL))) | 97 | if ((error < 0) && !((errno == EADDRINUSE) || (errno == EINVAL))) |
98 | break; | 98 | break; |
99 | 99 | ||
100 | *portp = (i % NPORTS) + STARTPORT; | 100 | *portp = (i % NPORTS) + STARTPORT; |