winlin

for bug #235, fix the return code bug.

@@ -320,13 +320,9 @@ namespace _srs_internal @@ -320,13 +320,9 @@ namespace _srs_internal
320 320
321 key_block::~key_block() 321 key_block::~key_block()
322 { 322 {
323 - if (random0) {  
324 srs_freep(random0); 323 srs_freep(random0);
325 - }  
326 - if (random1) {  
327 srs_freep(random1); 324 srs_freep(random1);
328 } 325 }
329 - }  
330 326
331 int key_block::parse(SrsStream* stream) 327 int key_block::parse(SrsStream* stream)
332 { 328 {
@@ -342,15 +338,12 @@ namespace _srs_internal @@ -342,15 +338,12 @@ namespace _srs_internal
342 // reset stream to read others. 338 // reset stream to read others.
343 stream->skip(-764); 339 stream->skip(-764);
344 340
345 - // TODO: FIXME: free it.  
346 - random0 = NULL;  
347 - random1 = NULL;  
348 -  
349 int valid_offset = calc_valid_offset(); 341 int valid_offset = calc_valid_offset();
350 srs_assert(valid_offset >= 0); 342 srs_assert(valid_offset >= 0);
351 343
352 random0_size = valid_offset; 344 random0_size = valid_offset;
353 if (random0_size > 0) { 345 if (random0_size > 0) {
  346 + srs_freep(random0);
354 random0 = new char[random0_size]; 347 random0 = new char[random0_size];
355 stream->read_bytes(random0, random0_size); 348 stream->read_bytes(random0, random0_size);
356 } 349 }
@@ -359,6 +352,7 @@ namespace _srs_internal @@ -359,6 +352,7 @@ namespace _srs_internal
359 352
360 random1_size = 764 - valid_offset - 128 - 4; 353 random1_size = 764 - valid_offset - 128 - 4;
361 if (random1_size > 0) { 354 if (random1_size > 0) {
  355 + srs_freep(random1);
362 random1 = new char[random1_size]; 356 random1 = new char[random1_size];
363 stream->read_bytes(random1, random1_size); 357 stream->read_bytes(random1, random1_size);
364 } 358 }
@@ -408,13 +402,9 @@ namespace _srs_internal @@ -408,13 +402,9 @@ namespace _srs_internal
408 402
409 digest_block::~digest_block() 403 digest_block::~digest_block()
410 { 404 {
411 - if (random0) {  
412 srs_freep(random0); 405 srs_freep(random0);
413 - }  
414 - if (random1) {  
415 srs_freep(random1); 406 srs_freep(random1);
416 } 407 }
417 - }  
418 408
419 int digest_block::parse(SrsStream* stream) 409 int digest_block::parse(SrsStream* stream)
420 { 410 {
@@ -425,15 +415,12 @@ namespace _srs_internal @@ -425,15 +415,12 @@ namespace _srs_internal
425 415
426 offset = stream->read_4bytes(); 416 offset = stream->read_4bytes();
427 417
428 - // TODO: FIXME: free it.  
429 - random0 = NULL;  
430 - random1 = NULL;  
431 -  
432 int valid_offset = calc_valid_offset(); 418 int valid_offset = calc_valid_offset();
433 srs_assert(valid_offset >= 0); 419 srs_assert(valid_offset >= 0);
434 420
435 random0_size = valid_offset; 421 random0_size = valid_offset;
436 if (random0_size > 0) { 422 if (random0_size > 0) {
  423 + srs_freep(random0);
437 random0 = new char[random0_size]; 424 random0 = new char[random0_size];
438 stream->read_bytes(random0, random0_size); 425 stream->read_bytes(random0, random0_size);
439 } 426 }
@@ -442,6 +429,7 @@ namespace _srs_internal @@ -442,6 +429,7 @@ namespace _srs_internal
442 429
443 random1_size = 764 - 4 - valid_offset - 32; 430 random1_size = 764 - 4 - valid_offset - 32;
444 if (random1_size > 0) { 431 if (random1_size > 0) {
  432 + srs_freep(random1);
445 random1 = new char[random1_size]; 433 random1 = new char[random1_size];
446 stream->read_bytes(random1, random1_size); 434 stream->read_bytes(random1, random1_size);
447 } 435 }
@@ -741,9 +729,10 @@ namespace _srs_internal @@ -741,9 +729,10 @@ namespace _srs_internal
741 729
742 int c1s1_strategy_schema0::copy_to(c1s1* owner, char* bytes, int size, bool with_digest) 730 int c1s1_strategy_schema0::copy_to(c1s1* owner, char* bytes, int size, bool with_digest)
743 { 731 {
744 - SrsStream stream;  
745 int ret = ERROR_SUCCESS; 732 int ret = ERROR_SUCCESS;
746 733
  734 + SrsStream stream;
  735 +
747 if ((ret = stream.initialize(bytes, size)) != ERROR_SUCCESS) { 736 if ((ret = stream.initialize(bytes, size)) != ERROR_SUCCESS) {
748 return ret; 737 return ret;
749 } 738 }
@@ -753,6 +742,8 @@ namespace _srs_internal @@ -753,6 +742,8 @@ namespace _srs_internal
753 copy_digest(&stream, with_digest); 742 copy_digest(&stream, with_digest);
754 743
755 srs_assert(stream.empty()); 744 srs_assert(stream.empty());
  745 +
  746 + return ret;
756 } 747 }
757 748
758 c1s1_strategy_schema1::c1s1_strategy_schema1() 749 c1s1_strategy_schema1::c1s1_strategy_schema1()
@@ -801,9 +792,10 @@ namespace _srs_internal @@ -801,9 +792,10 @@ namespace _srs_internal
801 792
802 int c1s1_strategy_schema1::copy_to(c1s1* owner, char* bytes, int size, bool with_digest) 793 int c1s1_strategy_schema1::copy_to(c1s1* owner, char* bytes, int size, bool with_digest)
803 { 794 {
804 - SrsStream stream;  
805 int ret = ERROR_SUCCESS; 795 int ret = ERROR_SUCCESS;
806 796
  797 + SrsStream stream;
  798 +
807 if ((ret = stream.initialize(bytes, size)) != ERROR_SUCCESS) { 799 if ((ret = stream.initialize(bytes, size)) != ERROR_SUCCESS) {
808 return ret; 800 return ret;
809 } 801 }
@@ -813,6 +805,8 @@ namespace _srs_internal @@ -813,6 +805,8 @@ namespace _srs_internal
813 copy_key(&stream); 805 copy_key(&stream);
814 806
815 srs_assert(stream.empty()); 807 srs_assert(stream.empty());
  808 +
  809 + return ret;
816 } 810 }
817 811
818 // TODO: FIXME: move to the right position. 812 // TODO: FIXME: move to the right position.