SEGV bug gevonden!

Guus Sliepen guus at sliepen.warande.net
Sat Apr 22 15:24:56 CEST 2000


oi oi,

De segmentation faults treden op in req_key_h() in protocol.c:

int req_key_h(conn_list_t *cl, unsigned char *d, int len)
{
  key_req_t *tmp = (key_req_t*)d;
  conn_list_t *fw;

  if(debug_lvl > 2)
    syslog(LOG_DEBUG, "got REQ_KEY from " IP_ADDR_S " for " IP_ADDR_S,
	   IP_ADDR_V(tmp->from), IP_ADDR_V(tmp->to));

  if((tmp->to & myself->vpn_mask) == (myself->vpn_ip & myself->vpn_mask))
    {  /* hey! they want something from ME! :) */
      send_key_answer(cl, tmp->from);
      return 0;
    }

  fw = lookup_conn(tmp->to);

!!!!! Hier gaat het mis. lookup_conn() kan namelijk NULL teruggeven!
!!!!! En daar wordt niet op gecontroleerd --> SEGV!

  if(debug_lvl > 3)
    syslog(LOG_DEBUG, "Forwarding request for public key to " IP_ADDR_S,
	   IP_ADDR_V(fw->nexthop->vpn_ip));

  if(send(fw->nexthop->meta_socket, tmp, sizeof(key_req_t), 0) < 0)
    {
      syslog(LOG_ERR, "send failed: %s:%d: %m", __FILE__, __LINE__);
      return -1;
    }

  return 0;
}

Zow. Nog net gevonden voordat ik op de bus naar mijn ouders ga.

Prettig Pasen!
Guus Sliepen.

---
TINC development list, tinc-devel at nl.linux.org
Archive: http://mail.nl.linux.org/tinc-devel/



More information about the Tinc-devel mailing list