diff options
| author | erdgeist <> | 2009-07-14 13:03:01 +0000 |
|---|---|---|
| committer | erdgeist <> | 2009-07-14 13:03:01 +0000 |
| commit | 274a03f3d7dea1620d93b78d2d50e5c8915fe643 (patch) | |
| tree | 631611c8cd5d7ff64ac8d7165b7f6ea244ee088d | |
| parent | a9c25b9fed0b245496a40937ec343fa306dc252e (diff) | |
Only get old accesslist value shortly before freeing it
| -rw-r--r-- | ot_accesslist.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ot_accesslist.c b/ot_accesslist.c index e57f09e..834cbec 100644 --- a/ot_accesslist.c +++ b/ot_accesslist.c | |||
| @@ -51,7 +51,7 @@ static void accesslist_readfile( int sig ) { | |||
| 51 | FILE * accesslist_filehandle; | 51 | FILE * accesslist_filehandle; |
| 52 | ot_hash infohash; | 52 | ot_hash infohash; |
| 53 | ot_vector accesslist_tmp; | 53 | ot_vector accesslist_tmp; |
| 54 | void *olddata = accesslist.data; | 54 | void *olddata; |
| 55 | char inbuf[512]; | 55 | char inbuf[512]; |
| 56 | 56 | ||
| 57 | if( sig != SIGHUP ) return; | 57 | if( sig != SIGHUP ) return; |
| @@ -89,6 +89,7 @@ static void accesslist_readfile( int sig ) { | |||
| 89 | 89 | ||
| 90 | /* Now exchange the accesslist vector in the least race condition prone way */ | 90 | /* Now exchange the accesslist vector in the least race condition prone way */ |
| 91 | accesslist.size = 0; | 91 | accesslist.size = 0; |
| 92 | olddata = accesslist.data; | ||
| 92 | memcpy( &accesslist, &accesslist_tmp, sizeof( &accesslist_tmp )); | 93 | memcpy( &accesslist, &accesslist_tmp, sizeof( &accesslist_tmp )); |
| 93 | free( olddata ); | 94 | free( olddata ); |
| 94 | } | 95 | } |
