Skip to content
This repository has been archived by the owner on Feb 12, 2019. It is now read-only.

Commit

Permalink
Fixed possibility of Unsolicited Dialback Attacks
Browse files Browse the repository at this point in the history
  • Loading branch information
smokku committed Aug 22, 2012
1 parent 0b1d913 commit aabcffa
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions s2s/out.c
Original file line number Diff line number Diff line change
Expand Up @@ -1661,7 +1661,7 @@ static void _out_result(conn_t out, nad_t nad) {
rkeylen = strlen(rkey);

/* key is valid */
if(nad_find_attr(nad, 0, -1, "type", "valid") >= 0) {
if(nad_find_attr(nad, 0, -1, "type", "valid") >= 0 && xhash_get(out->states, rkey) == (void*) conn_INPROGRESS) {
log_write(out->s2s->log, LOG_NOTICE, "[%d] [%s, port=%d] outgoing route '%s' is now valid%s%s", out->fd->fd, out->ip, out->port, rkey, (out->s->flags & SX_SSL_WRAPPER) ? ", TLS negotiated" : "", out->s->compressed ? ", ZLIB compression enabled" : "");

xhash_put(out->states, pstrdup(xhash_pool(out->states), rkey), (void *) conn_VALID); /* !!! small leak here */
Expand Down Expand Up @@ -1749,7 +1749,7 @@ static void _out_verify(conn_t out, nad_t nad) {
rkey = s2s_route_key(NULL, to->domain, from->domain);

attr = nad_find_attr(nad, 0, -1, "type", "valid");
if(attr >= 0) {
if(attr >= 0 && xhash_get(in->states, rkey) == (void*) conn_INPROGRESS) {
xhash_put(in->states, pstrdup(xhash_pool(in->states), rkey), (void *) conn_VALID);
log_write(in->s2s->log, LOG_NOTICE, "[%d] [%s, port=%d] incoming route '%s' is now valid%s%s", in->fd->fd, in->ip, in->port, rkey, (in->s->flags & SX_SSL_WRAPPER) ? ", TLS negotiated" : "", in->s->compressed ? ", ZLIB compression enabled" : "");
valid = 1;
Expand Down

0 comments on commit aabcffa

Please sign in to comment.