X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffnet-dc.c;h=33c7b6facbe87bc8b311fd484cb5cf94654eaac0;hb=62da27122178606db9029d8442b398a091c57246;hp=a20aa0567b0e3ef1ce9733d2dd70604332345745;hpb=1d85f24bb4bdc0f15f9560bc867befeff8eabc36;p=doldaconnect.git diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index a20aa05..33c7b6f 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -590,6 +590,7 @@ static char *getadcid(struct dcpeer *peer) char *ret; int isfilelist; + isfilelist = 0; if(!wcscmp(peer->transfer->path, L"files.xml") || !wcscmp(peer->transfer->path, L"files.xml.bz2") || !wcscmp(peer->transfer->path, L"MyList.DcLst")) isfilelist = 1; if(!isfilelist && (peer->transfer->hash != NULL) && isdchash(peer->transfer->hash) && supports(peer, "tthf")) @@ -1599,6 +1600,7 @@ static void cmd_peerlock(struct socket *sk, struct dcpeer *peer, char *cmd, char peer->transfer = transfer; qstrf(sk, "$Direction %s %i|", (peer->direction == TRNSD_UP)?"Upload":"Download", rand() % 10000); qstrf(sk, "$Key %s|", key); + free(key); } else { if(peer->key != NULL) free(peer->key); @@ -3073,13 +3075,10 @@ static void hubdestroy(struct fnetnode *fn) struct qcommand *qcmd; hub = (struct dchub *)fn->data; - if(fn->sk != NULL) + if((fn->sk != NULL) && (fn->sk->data == fn)) { - if(fn->sk->data == fn) - { - fn->sk->data = NULL; - putfnetnode(fn); - } + fn->sk->data = NULL; + putfnetnode(fn); } if(hub == NULL) return;