Correctly bencode strings containing nul characters.

This commit is contained in:
Josh Elsasser
2007-01-28 23:26:57 +00:00
parent 3388b93542
commit 6ebeef7924
3 changed files with 36 additions and 12 deletions

View File

@@ -164,7 +164,8 @@ static void __bencPrint( benc_val_t * val, int space )
break;
case TYPE_STR:
fprintf( stderr, "%s\n", val->val.s.s );
fwrite( val->val.s.s, 1, val->val.s.i, stderr );
putc( '\n', stderr );
break;
case TYPE_LIST:
@@ -265,12 +266,8 @@ int tr_bencSave( benc_val_t * val, char ** buf, int * used, int * max )
break;
case TYPE_STR:
if( (int)strlen(val->val.s.s) != val->val.s.i )
{
return 1;
}
if( tr_sprintf( buf, used, max, "%i:%s",
val->val.s.i, val->val.s.s ) )
if( tr_sprintf( buf, used, max, "%i:", val->val.s.i ) ||
tr_concat( buf, used, max, val->val.s.s, val->val.s.i ) )
{
return 1;
}