On 06.03.2017 08:43, Peter Meerwald-Stadler wrote:
do...while not reachable, loop should try different ports in case EADDRINUSE is 
returned
Coverity ID: #1398161

Signed-off-by: Peter Meerwald-Stadler <[email protected]>
---
  src/modules/raop/raop-client.c | 11 +++++++----
  1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/modules/raop/raop-client.c b/src/modules/raop/raop-client.c
index 94342d2..e39663d 100644
--- a/src/modules/raop/raop-client.c
+++ b/src/modules/raop/raop-client.c
@@ -799,13 +799,16 @@ static int open_bind_udp_socket(pa_raop_client *c, 
uint16_t *actual_port) {
      }
do {
-        *sa_port = htons(port);
+        int ret;
- if (bind(fd, sa, salen) < 0 && errno != EADDRINUSE) {
-            pa_log("bind_socket() failed: %s", pa_cstrerror(errno));
+        *sa_port = htons(port);
+        ret = bind(fd, sa, salen);
+        if (!ret)
+            break;
+        if (ret < 0 && errno != EADDRINUSE) {
+            pa_log("bind() failed: %s", pa_cstrerror(errno));
              goto fail;
          }
-        break;
      } while (++port > 0);

You should also fail if port is 0 after the loop.

      pa_log_debug("Socket bound to port %d (SOCK_DGRAM)", port);


_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to