X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffnet-dc.c;h=a37918f532748885a02915b9a7cae53353c8235d;hb=edda83f20cb7ca8ad5d1076d6a7cebe067a3fb23;hp=772306cf4dfd26c931c20b4d827eef036006ffdf;hpb=c7185019854aa79630ff944e191f59582c675d8b;p=doldaconnect.git diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index 772306c..a37918f 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -1167,10 +1167,11 @@ static void cmd_search(struct socket *sk, struct fnetnode *fn, char *cmd, char * if(!dotth && !strncmp(p, "TTH:", 4)) { dotth = 1; - if((buf = base32decode(p + 4, &buflen)) == NULL) - goto out; - if(buflen != 24) + if(((buf = base32decode(p + 4, &buflen)) == NULL) || (buflen != 24)) + { + free(buf); goto out; + } memcpy(hashtth, buf, 24); free(buf); } else { @@ -1309,7 +1310,7 @@ static void sendctm(struct socket *sk, char *nick) if(tcpsock == NULL) return; - if(sockgetremotename(tcpsock, &addr, &addrlen) < 0) + if(sockgetremotename(sk, &addr, &addrlen) < 0) return; if(addr->sa_family == AF_INET) qstrf(sk, "$ConnectToMe %s %s|", nick, formataddress(addr, addrlen)); @@ -2518,7 +2519,7 @@ static int hubsearch(struct fnetnode *fn, struct search *srch, struct srchfnnlis addtobuf(sstr, 0); if(tcpsock != NULL) { - if(sockgetremotename(udpsock, &name, &namelen) < 0) + if(sockgetremotename(fn->sk, &name, &namelen) < 0) { flog(LOG_WARNING, "cannot get address of UDP socket"); } else {