Skip to content

Commit

Permalink
[core] proper checking on return code for getsockname()
Browse files Browse the repository at this point in the history
Reported by coverity CID 200064
  • Loading branch information
bogdan-iancu committed Jul 15, 2020
1 parent 44abb30 commit c489f46
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion net/net_tcp.c
Expand Up @@ -877,7 +877,11 @@ static struct tcp_connection* tcpconn_new(int sock, union sockaddr_union* su,
c->rcv.bind_address = si;
c->rcv.dst_ip = si->address;
su_size = sockaddru_len(local_su);
getsockname(sock, (struct sockaddr *)&local_su, &su_size);
if (getsockname(sock, (struct sockaddr *)&local_su, &su_size)<0) {
LM_ERR("failed to get info on received interface/IP %d/%s\n",
errno, strerror(errno));
goto error;
}
c->rcv.dst_port = su_getport(&local_su);
print_ip("tcpconn_new: new tcp connection to: ", &c->rcv.src_ip, "\n");
LM_DBG("on port %d, proto %d\n", c->rcv.src_port, si->proto);
Expand All @@ -902,6 +906,7 @@ static struct tcp_connection* tcpconn_new(int sock, union sockaddr_union* su,
tcp_connections_no++;
return c;

error:
lock_destroy(&c->write_lock);
error0:
shm_free(c);
Expand Down

0 comments on commit c489f46

Please sign in to comment.