Changeset 5031 for trunk/libtransmission/metainfo.c
- Timestamp:
- Feb 14, 2008, 12:52:58 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/metainfo.c
r4404 r5031 306 306 int i, j; 307 307 308 for( i=0; i<inf->fileCount; ++i ) 309 tr_free( inf->files[i].name ); 310 308 311 tr_free( inf->pieces ); 309 312 tr_free( inf->files ); … … 320 323 } 321 324 322 static int getfile( char * buf, int size,325 static int getfile( char ** setme, 323 326 const char * prefix, benc_val_t * name ) 324 327 { … … 326 329 const char ** list; 327 330 int ii, jj; 331 char buf[4096]; 328 332 329 333 if( TYPE_LIST != name->type ) … … 365 369 } 366 370 367 strlcat_utf8( buf, prefix, size, 0 ); 371 memset( buf, 0, sizeof( buf ) ); 372 strlcat_utf8( buf, prefix, sizeof(buf), 0 ); 368 373 for( ii = 0; jj > ii; ii++ ) 369 374 { 370 strlcat_utf8( buf, TR_PATH_DELIMITER_STR, size , 0 );371 strlcat_utf8( buf, list[ii], size , TR_PATH_DELIMITER );375 strlcat_utf8( buf, TR_PATH_DELIMITER_STR, sizeof(buf), 0 ); 376 strlcat_utf8( buf, list[ii], sizeof(buf), TR_PATH_DELIMITER ); 372 377 } 373 378 free( list ); 379 380 tr_free( *setme ); 381 *setme = tr_strdup( buf ); 374 382 375 383 return TR_OK; … … 640 648 inf->files = calloc( inf->fileCount, sizeof( inf->files[0] ) ); 641 649 642 if( NULL == inf->files ) 643 { 650 if( !inf->files ) 644 651 return TR_EINVALID; 645 }646 652 647 653 for( ii = 0; files->val.l.count > ii; ii++ ) … … 649 655 item = &files->val.l.vals[ii]; 650 656 path = tr_bencDictFindFirst( item, "path.utf-8", "path", NULL ); 651 if( getfile( inf->files[ii].name, sizeof( inf->files[0].name ), 652 inf->name, path ) ) 657 if( getfile( &inf->files[ii].name, inf->name, path ) ) 653 658 { 654 659 tr_err( "%s \"path\" entry", … … 669 674 else if( NULL != length && TYPE_INT == length->type ) 670 675 { 676 char buf[4096]; 677 671 678 /* Single-file mode */ 672 679 inf->isMultifile = 0; … … 674 681 inf->files = calloc( 1, sizeof( inf->files[0] ) ); 675 682 676 if( NULL == inf->files ) 677 { 683 if( !inf->files ) 678 684 return TR_EINVALID; 679 } 680 681 strlcat_utf8( inf->files[0].name, name->val.s.s, 682 sizeof( inf->files[0].name ), TR_PATH_DELIMITER ); 685 686 memset( buf, 0, sizeof( buf ) ); 687 strlcat_utf8( buf, name->val.s.s, sizeof(buf), TR_PATH_DELIMITER ); 688 tr_free( inf->files[0].name ); 689 inf->files[0].name = tr_strdup( buf ); 683 690 684 691 inf->files[0].length = length->val.i;
Note: See TracChangeset
for help on using the changeset viewer.