diff options
| author | erdgeist <> | 2010-08-14 15:22:20 +0000 |
|---|---|---|
| committer | erdgeist <> | 2010-08-14 15:22:20 +0000 |
| commit | 4fe2f355950d0bc810e665a68ded157531c6a367 (patch) | |
| tree | af46c911bd46232b0802ad1cbff42fce4861539d | |
| parent | 9cfab8dbc6457d5eb5ead9c3a494b03a4cb6143c (diff) | |
Looking into pointer arithmetics issue
| -rw-r--r-- | proxy.c | 12 |
1 files changed, 6 insertions, 6 deletions
| @@ -412,7 +412,7 @@ close_socket: | |||
| 412 | static void handle_write( int64 peersocket ) { | 412 | static void handle_write( int64 peersocket ) { |
| 413 | proxy_peer *peer = io_getcookie( peersocket ); | 413 | proxy_peer *peer = io_getcookie( peersocket ); |
| 414 | 414 | ||
| 415 | if( !peer ) { | 415 | if( !peer ) { |
| 416 | /* Can't happen ;) */ | 416 | /* Can't happen ;) */ |
| 417 | io_close( peersocket ); | 417 | io_close( peersocket ); |
| 418 | return; | 418 | return; |
| @@ -672,7 +672,7 @@ static void * streamsync_worker( void * args ) { | |||
| 672 | } | 672 | } |
| 673 | 673 | ||
| 674 | /* Copy tail of info_hash, advance pointer */ | 674 | /* Copy tail of info_hash, advance pointer */ |
| 675 | memcpy( *dst, torrent->hash + 1, sizeof( ot_hash ) - 1); | 675 | memcpy( *dst, ((uint8_t*)torrent->hash) + 1, sizeof( ot_hash ) - 1); |
| 676 | *dst += sizeof( ot_hash ) - 1; | 676 | *dst += sizeof( ot_hash ) - 1; |
| 677 | 677 | ||
| 678 | /* Encode peer count */ | 678 | /* Encode peer count */ |
| @@ -764,7 +764,7 @@ static void livesync_proxytell( uint8_t prefix, uint8_t *info_hash, uint8_t *pee | |||
| 764 | } | 764 | } |
| 765 | 765 | ||
| 766 | static void process_indata( proxy_peer * peer ) { | 766 | static void process_indata( proxy_peer * peer ) { |
| 767 | int consumed, peers; | 767 | size_t consumed, peers; |
| 768 | uint8_t *data = peer->indata, *hash; | 768 | uint8_t *data = peer->indata, *hash; |
| 769 | uint8_t *dataend = data + peer->indata_length; | 769 | uint8_t *dataend = data + peer->indata_length; |
| 770 | 770 | ||
| @@ -782,7 +782,7 @@ printf( "type: %hhu, prefix: %02X, torrentcount: %zd\n", peer->packet_type, peer | |||
| 782 | } | 782 | } |
| 783 | 783 | ||
| 784 | next_torrent: | 784 | next_torrent: |
| 785 | /* Ensure size for the complete torrent block */ | 785 | /* Ensure size for a minimal torrent block */ |
| 786 | if( data + sizeof(ot_hash) + OT_IP_SIZE + 3 > dataend ) break; | 786 | if( data + sizeof(ot_hash) + OT_IP_SIZE + 3 > dataend ) break; |
| 787 | 787 | ||
| 788 | /* Advance pointer to peer count or peers */ | 788 | /* Advance pointer to peer count or peers */ |
| @@ -798,9 +798,9 @@ next_torrent: | |||
| 798 | } | 798 | } |
| 799 | 799 | ||
| 800 | /* Ensure enough data being read to hold all peers */ | 800 | /* Ensure enough data being read to hold all peers */ |
| 801 | if( data + 7 * peers > dataend ) break; | 801 | if( data + (OT_IP_SIZE + 3) * peers > dataend ) break; |
| 802 | 802 | ||
| 803 | printf( "peers: %d\n", peers ); | 803 | printf( "peers: %zd\n", peers ); |
| 804 | 804 | ||
| 805 | while( peers-- ) { | 805 | while( peers-- ) { |
| 806 | livesync_proxytell( peer->packet_tprefix, hash, data ); | 806 | livesync_proxytell( peer->packet_tprefix, hash, data ); |
