diff --git a/libtransmission/peer.c b/libtransmission/peer.c index 73a861dc2..bca1ce346 100644 --- a/libtransmission/peer.c +++ b/libtransmission/peer.c @@ -318,6 +318,9 @@ void tr_peerDestroy( tr_peer_t * peer ) tr_rcClose( peer->download ); tr_rcClose( peer->upload ); free( peer->client ); + + memset( peer, '\0', sizeof(tr_peer_t) ); + free( peer ); } @@ -480,7 +483,12 @@ int tr_peerPulse( tr_peer_t * peer ) int ret, size; uint8_t * p; uint64_t date; - const int isSeeding = tr_cpGetStatus( tor->completion ) != TR_CP_INCOMPLETE; + int isSeeding; + + assert( peer != NULL ); + assert( peer->tor != NULL ); + + isSeeding = tr_cpGetStatus( tor->completion ) != TR_CP_INCOMPLETE; if( ( ret = checkPeer( peer ) ) ) { diff --git a/libtransmission/peerext.h b/libtransmission/peerext.h index 05c1b3996..24384ebb8 100644 --- a/libtransmission/peerext.h +++ b/libtransmission/peerext.h @@ -37,6 +37,11 @@ makeCommonPex( tr_torrent_t * tor, tr_peer_t * peer, tr_peertree_entry_t * found; benc_val_t val, * addval, * delval, * extra; + assert( tor != NULL ); + assert( peer != NULL ); + assert( retbuf != NULL ); + assert( retlen != NULL ); + *retbuf = NULL; *retlen = 0; sent = &peer->sentPeers;