efl net - fix ipv6 getsockname to use the proper struct to do it
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 29 Jul 2017 01:35:39 +0000 (10:35 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 29 Jul 2017 01:56:47 +0000 (10:56 +0900)
      struct sockaddr_storage *addr;

AS the actual storage ( a ptr to store the whole data). kind of...
wrong. it should be:

      struct sockaddr_storage addr;

see examples of this kind of usage of getsockname:

http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch04lev1sec10.html

found by PVS studio

@fix

src/lib/ecore_con/efl_net_server_tcp.c
src/lib/ecore_con/efl_net_server_udp.c
src/lib/ecore_con/efl_net_server_unix.c

index c4d1a62..f82d57b 100644 (file)
@@ -167,7 +167,7 @@ _efl_net_server_tcp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Tcp_
       char buf[INET6_ADDRSTRLEN + sizeof("[]:65536")];
       Eina_Bool listening;
       Eina_Error err;
-      struct sockaddr_storage *addr;
+      struct sockaddr_storage addr;
       socklen_t addrlen;
       SOCKET fd;
 
index cd68271..f45fd61 100644 (file)
@@ -213,7 +213,7 @@ _efl_net_server_udp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Udp_
    {
       char buf[INET6_ADDRSTRLEN + sizeof("[]:65536")];
       Eina_Error err;
-      struct sockaddr_storage *addr;
+      struct sockaddr_storage addr;
       socklen_t addrlen;
       SOCKET fd;
 
index 4ec9176..b1a1d2d 100644 (file)
@@ -173,7 +173,7 @@ _efl_net_server_unix_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Uni
       char buf[INET6_ADDRSTRLEN + sizeof("[]:65536")];
       Eina_Bool listening;
       Eina_Error err;
-      struct sockaddr_storage *addr;
+      struct sockaddr_storage addr;
       socklen_t addrlen;
       SOCKET fd;