From e17b79563481f4ad91ca26356acf68fadebadfbe Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sun, 13 Aug 2006 16:19:19 +0000 Subject: [PATCH] lock torrent before accessing peers --- libtransmission/transmission.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libtransmission/transmission.c b/libtransmission/transmission.c index 653f112c0..971746df7 100644 --- a/libtransmission/transmission.c +++ b/libtransmission/transmission.c @@ -407,9 +407,18 @@ int tr_getFinished( tr_torrent_t * tor ) tr_peer_t * tr_getPeer( tr_torrent_t * tor, int peerNum) { + tr_peer_t * peer; + + tr_lockLock( &tor->lock ); + if (peerNum < 0 || peerNum >= tor->peerCount) - return NULL; - return tor->peers[peerNum]; + peer = NULL; + else + peer = tor->peers[peerNum]; + + tr_lockUnlock( &tor->lock ); + + return peer; } tr_stat_t * tr_torrentStat( tr_torrent_t * tor )