Print this page
SUS-56 libstmfproxy incorrectly checks socket() return code

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libstmfproxy/common/stmftransport.c
          +++ new/usr/src/lib/libstmfproxy/common/stmftransport.c
↓ open down ↓ 73 lines elided ↑ open up ↑
  74   74  static void *
  75   75  pt_socket_connect(int server_node, char *server)
  76   76  {
  77   77          int sfd, new_sfd;
  78   78          s_handle_t *sh = NULL;
  79   79          int on = 1;
  80   80          struct sockaddr_in cli_addr, serv_addr;
  81   81          struct  sockaddr_in sin;
  82   82          int cliLen = sizeof (cli_addr);
  83   83  
  84      -        if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) <= 0) {
       84 +        if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
  85   85                  syslog(LOG_DAEMON|LOG_WARNING,
  86   86                      "socket() call failed: %d", errno);
  87   87                  return (NULL);
  88   88          }
  89   89  
  90   90          if (server_node) {
  91   91  
  92   92                  if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &on,
  93   93                      sizeof (on)) < 0) {
  94   94                          syslog(LOG_DAEMON|LOG_WARNING,
↓ open down ↓ 97 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX