mirror of
https://github.com/transmission/transmission
synced 2025-03-08 21:04:25 +00:00
Don't leak memory when bencode parsing fails.
This commit is contained in:
parent
5fc3a462c8
commit
a2962c4a71
1 changed files with 5 additions and 2 deletions
|
@ -101,21 +101,24 @@ int _tr_bencLoad( char * buf, size_t len, benc_val_t * val, char ** end )
|
|||
if( tr_bencLoad( cur, len - (cur - buf),
|
||||
&val->val.l.vals[val->val.l.count], &p ) )
|
||||
{
|
||||
tr_bencFree( val );
|
||||
return 1;
|
||||
}
|
||||
val->val.l.count++;
|
||||
if( is_dict && str_expected &&
|
||||
val->val.l.vals[val->val.l.count].type != TYPE_STR )
|
||||
val->val.l.vals[val->val.l.count - 1].type != TYPE_STR )
|
||||
{
|
||||
tr_bencFree( val );
|
||||
return 1;
|
||||
}
|
||||
str_expected = !str_expected;
|
||||
|
||||
val->val.l.count++;
|
||||
cur = p;
|
||||
}
|
||||
|
||||
if( is_dict && ( val->val.l.count & 1 ) )
|
||||
{
|
||||
tr_bencFree( val );
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue