[pulseaudio-discuss] [PATCH 3/3] raop: Fix check for invalid file descriptor

Peter Meerwald-Stadler pmeerw at pmeerw.net
Tue Mar 7 15:56:27 UTC 2017


file descriptor 0 is valid

Signed-off-by: Peter Meerwald-Stadler <pmeerw at pmeerw.net>
---
 src/modules/raop/raop-client.c | 30 +++++++++++++++---------------
 src/modules/raop/raop-sink.c   |  2 +-
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/modules/raop/raop-client.c b/src/modules/raop/raop-client.c
index 1bd4c4a..f23cf93 100644
--- a/src/modules/raop/raop-client.c
+++ b/src/modules/raop/raop-client.c
@@ -968,10 +968,10 @@ static void rtsp_stream_cb(pa_rtsp_client *rtsp, pa_rtsp_state_t state, pa_rtsp_
             break;
 
         annonce_error:
-            if (c->udp_cfd > 0)
+            if (c->udp_cfd >= 0)
                 pa_close(c->udp_cfd);
             c->udp_cfd = -1;
-            if (c->udp_tfd > 0)
+            if (c->udp_tfd >= 0)
                 pa_close(c->udp_tfd);
             c->udp_tfd = -1;
 
@@ -1073,11 +1073,11 @@ static void rtsp_stream_cb(pa_rtsp_client *rtsp, pa_rtsp_state_t state, pa_rtsp_
             break;
 
         setup_error:
-            if (c->tcp_sfd > 0)
+            if (c->tcp_sfd >= 0)
                 pa_close(c->tcp_sfd);
             c->tcp_sfd = -1;
 
-            if (c->udp_sfd > 0)
+            if (c->udp_sfd >= 0)
                 pa_close(c->udp_sfd);
             c->udp_sfd = -1;
 
@@ -1135,11 +1135,11 @@ static void rtsp_stream_cb(pa_rtsp_client *rtsp, pa_rtsp_state_t state, pa_rtsp_
         case STATE_TEARDOWN: {
             pa_log_debug("RAOP: TEARDOWN");
 
-            if (c->tcp_sfd > 0)
+            if (c->tcp_sfd >= 0)
                 pa_close(c->tcp_sfd);
             c->tcp_sfd = -1;
 
-            if (c->udp_sfd > 0)
+            if (c->udp_sfd >= 0)
                 pa_close(c->udp_sfd);
             c->udp_sfd = -1;
 
@@ -1163,11 +1163,11 @@ static void rtsp_stream_cb(pa_rtsp_client *rtsp, pa_rtsp_state_t state, pa_rtsp_
 
             c->is_recording = false;
 
-            if (c->tcp_sfd > 0)
+            if (c->tcp_sfd >= 0)
                 pa_close(c->tcp_sfd);
             c->tcp_sfd = -1;
 
-            if (c->udp_sfd > 0)
+            if (c->udp_sfd >= 0)
                 pa_close(c->udp_sfd);
             c->udp_sfd = -1;
 
@@ -1507,11 +1507,11 @@ bool pa_raop_client_is_alive(pa_raop_client *c) {
 
     switch (c->protocol) {
         case PA_RAOP_PROTOCOL_TCP:
-            if (c->tcp_sfd > 0)
+            if (c->tcp_sfd >= 0)
                 return true;
             break;
         case PA_RAOP_PROTOCOL_UDP:
-            if (c->udp_sfd > 0)
+            if (c->udp_sfd >= 0)
                 return true;
             break;
         default:
@@ -1531,11 +1531,11 @@ bool pa_raop_client_can_stream(pa_raop_client *c) {
 
     switch (c->protocol) {
         case PA_RAOP_PROTOCOL_TCP:
-            if (c->tcp_sfd > 0 && c->is_recording)
+            if (c->tcp_sfd >= 0 && c->is_recording)
                 return true;
             break;
         case PA_RAOP_PROTOCOL_UDP:
-            if (c->udp_sfd > 0 && c->is_recording)
+            if (c->udp_sfd >= 0 && c->is_recording)
                 return true;
             break;
         default:
@@ -1557,14 +1557,14 @@ int pa_raop_client_stream(pa_raop_client *c) {
 
     switch (c->protocol) {
         case PA_RAOP_PROTOCOL_TCP:
-            if (c->tcp_sfd > 0 && !c->is_recording) {
+            if (c->tcp_sfd >= 0 && !c->is_recording) {
                 c->is_recording = true;
                 c->is_first_packet = true;
                 c->sync_count = 0;
             }
             break;
         case PA_RAOP_PROTOCOL_UDP:
-            if (c->udp_sfd > 0 && !c->is_recording) {
+            if (c->udp_sfd >= 0 && !c->is_recording) {
                 c->is_recording = true;
                 c->is_first_packet = true;
                 c->sync_count = 0;
@@ -1722,7 +1722,7 @@ pa_volume_t pa_raop_client_adjust_volume(pa_raop_client *c, pa_volume_t volume)
 
 void pa_raop_client_handle_oob_packet(pa_raop_client *c, const int fd, const uint8_t packet[], ssize_t size) {
     pa_assert(c);
-    pa_assert(fd > 0);
+    pa_assert(fd >= 0);
     pa_assert(packet);
 
     if (c->protocol == PA_RAOP_PROTOCOL_UDP) {
diff --git a/src/modules/raop/raop-sink.c b/src/modules/raop/raop-sink.c
index d321a2d..c5ff8b9 100644
--- a/src/modules/raop/raop-sink.c
+++ b/src/modules/raop/raop-sink.c
@@ -247,7 +247,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
                     if (u->rtpoll_item) {
                         pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, &nbfds);
                         for (i = 0; i < nbfds; i++) {
-                            if (pollfd && pollfd->fd > 0)
+                            if (pollfd && pollfd->fd >= 0)
                                pa_close(pollfd->fd);
                             pollfd++;
                         }
-- 
2.7.4



More information about the pulseaudio-discuss mailing list