rem: if (ret < 0) return -3;
add: if (ret < 0) { ret = -3; goto err; }
context: int netcat_socket_new_listen(const struct in_addr *addr, unsigned short port){  int sock, ret;  struct sockaddr_in my_addr;  debug_dv("netcat_socket_new_listen(addr=%p, port=%hu)", (void *)addr, port);  /* Reset the sockaddr structure */  my_addr.sin_family = AF_INET;  my_addr.sin_port = htons(port);  memcpy(&my_addr.sin_addr, addr, sizeof(my_addr.sin_addr));  /* create the socket and fix the options */  sock = netcat_socket_new(PF_INET, SOCK_STREAM);  if (sock < 0)    return sock;  /* bind it to the specified address (could be INADDY_ANY as well) */  ret = bind(sock, (struct sockaddr *)&my_addr, sizeof(my_addr));  if (ret < 0)    return -3;  /* actually make it listening, with a reasonable backlog value */  ret = listen(sock, 4);  if (ret < 0)    return -4;  return sock;}