Changeset 543 for trunk/libtransmission


Ignore:
Timestamp:
Jul 7, 2006, 4:21:30 PM (16 years ago)
Author:
joshe
Message:

Don't leak memory when bencode parsing fails.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/bencode.c

    r261 r543  
    102102                             &val->val.l.vals[val->val.l.count], &p ) )
    103103            {
    104                 return 1;
    105             }
     104                tr_bencFree( val );
     105                return 1;
     106            }
     107            val->val.l.count++;
    106108            if( is_dict && str_expected &&
    107                 val->val.l.vals[val->val.l.count].type != TYPE_STR )
    108             {
     109                val->val.l.vals[val->val.l.count - 1].type != TYPE_STR )
     110            {
     111                tr_bencFree( val );
    109112                return 1;
    110113            }
    111114            str_expected = !str_expected;
    112115
    113             val->val.l.count++;
    114116            cur = p;
    115117        }
     
    117119        if( is_dict && ( val->val.l.count & 1 ) )
    118120        {
     121            tr_bencFree( val );
    119122            return 1;
    120123        }
Note: See TracChangeset for help on using the changeset viewer.