]> granicus.if.org Git - transmission/commitdiff
(trunk libT) #2823 "crash in bsearch() while updating blocklist" -- fixed in trunk...
authorCharles Kerr <charles@transmissionbt.com>
Fri, 29 Jan 2010 18:10:50 +0000 (18:10 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Fri, 29 Jan 2010 18:10:50 +0000 (18:10 +0000)
libtransmission/session.c

index d3a860ebc6c51ceb4d7d705db711df4c03dccdb4..4ec3859d3e45647768334ab4297bc26d100031af 100644 (file)
@@ -1897,11 +1897,11 @@ int
 tr_blocklistSetContent( tr_session * session,
                         const char * contentFilename )
 {
-    tr_list *      l;
+    tr_list * l;
+    int ruleCount;
     tr_blocklist * b;
-    const char *   defaultName = "level1.bin";
-
-    assert( tr_isSession( session ) );
+    const char * defaultName = "level1.bin";
+    tr_sessionLock( session );
 
     for( b = NULL, l = session->blocklists; !b && l; l = l->next )
         if( tr_stringEndsWith( _tr_blocklistGetFilename( l->data ),
@@ -1916,7 +1916,9 @@ tr_blocklistSetContent( tr_session * session,
         tr_free( path );
     }
 
-    return _tr_blocklistSetContent( b, contentFilename );
+    ruleCount = _tr_blocklistSetContent( b, contentFilename );
+    tr_sessionUnlock( session );
+    return ruleCount;
 }
 
 tr_bool