summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Persson <per.xb.persson@stericsson.com>2011-09-06 13:27:13 +0200
committerJimmy RUBIN <jimmy.rubin@stericsson.com>2011-09-08 08:48:16 +0200
commitceb2bf99bb025357977d08b776f3c683d96dad84 (patch)
tree8e2a66b9cb78fe7b97e414cff922e3ae10bf1681
parentf5784d2722df6d09dcf09f13a316531bf80fa973 (diff)
HDMIservice: Fix Coverity defects
Defects detected by Coverity Prevent are corected. ST-Ericsson ID: 360371 ST-Ericsson FOSS-OUT ID: STETL-FOSS-OUT-10177 Change-Id: Iccef9f4727b060ed33fa2ef9c7191f53ee0eb99f Signed-off-by: Per Persson <per.xb.persson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30293 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: QATEST Reviewed-by: Robert FEKETE <robert.fekete@stericsson.com> Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com> Reviewed-by: Per-Daniel OLSSON <per-daniel.olsson@stericsson.com>
-rw-r--r--src/socket.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/socket.c b/src/socket.c
index b029e11..e9531f4 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -180,6 +180,7 @@ void thread_socklisten_fn(void *arg)
res = bind(sockl, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
if (res < 0) {
LOGHDMILIB("socket bind fail:%d", res);
+ close(sockl);
goto thread_socklisten_fn_end;
}
@@ -188,13 +189,18 @@ void thread_socklisten_fn(void *arg)
/* while loop is breaked by shutdown on listen socket */
while (1) {
/* Listen for incoming connection */
- listen(sockl, SOCKET_MAX_CONN);
+ if (listen(sockl, SOCKET_MAX_CONN) != 0) {
+ LOGHDMILIB("%s listen error", __func__);
+ close(sockl);
+ goto thread_socklisten_fn_end;
+ }
/* Establish a client connection */
clilen = sizeof(cli_addr);
socknew = accept(sockl, (struct sockaddr *) &cli_addr, &clilen);
if (socknew < 0) {
LOGHDMILIB("socket accept fail:%d", socknew);
+ close(sockl);
goto thread_socklisten_fn_end;
}
LOGHDMILIB2("socket accept:%d", socknew);
@@ -284,6 +290,10 @@ int serversocket_create(int avoid_return_msg)
sock = socket(AF_UNIX, SOCK_STREAM, 0);
LOGHDMILIB("sock:%d", sock);
+ if (sock < 0) {
+ LOGHDMILIB("%s %s", __func__, "socket create fail");
+ goto serversocket_create_end;
+ }
addr.sun_family = AF_UNIX;
strcpy(addr.sun_path, SOCKET_LISTEN_PATH);
@@ -293,13 +303,14 @@ int serversocket_create(int avoid_return_msg)
LOGHDMILIB("connect:%d", n);
if (n < 0) {
- LOGHDMILIB("socket connect err:%d", n);
- goto socket_test_end;
+ LOGHDMILIB("%s socket connect err:%d", __func__, n);
+ close(sock);
+ sock = -1;
}
-socket_test_end:
+serversocket_create_end:
LOGHDMILIB("%s end", __func__);
- if (sock >= 0)
+ if (sock >= 0) {
serversocket_set(sock);
LOGHDMILIB("servsock:%d", sock);
@@ -308,6 +319,7 @@ socket_test_end:
pthread_create(&thread_sockserver, NULL,
(void *)thread_sockserver_fn, (void *)sock);
#endif /*HDMI_SERVICE_USE_CALLBACK_FN*/
+ }
return sock;
}