it - begin = 0, capacity = 4, size = 2
0x625000003992 is located 4242 bytes inside of 8448-byte region
[0x625000002900,0x625000004a00)

vector element size = 8448 / 4 = 2112 bytes
offset 4242 belongs to the 3rd element, which is actually out of
bounds when size == 2.

Looks like a true positive.

On Tue, Aug 22, 2017 at 5:26 PM, Jennifer Liu <lovejennife...@gmail.com> wrote:
> thanks a lot, looks like false positive, here is the output:
>
> ./fuzz/decode_fuzz_test crash-96da7f498ec50184b4a59ff76016825944944534
>
> INFO: Seed: 3163772972
>
> INFO: Loaded 1 modules   (4395 guards): 4395 [0x1042ffcf0, 0x10430419c),
>
> ./fuzz/decode_fuzz_test: Running 1 inputs 1 time(s) each.
>
> Running: crash-96da7f498ec50184b4a59ff76016825944944534
>
> it - begin = 0, capacity = 4, size = 3
>
> it - begin = 0, capacity = 4, size = 2
>
> =================================================================
>
> ==19407==ERROR: AddressSanitizer: container-overflow on address
> 0x625000003992 at pc 0x0001042011e6 bp 0x7fff5ba7c000 sp 0x7fff5ba7bff8
>
> READ of size 2 at 0x625000003992 thread T0
>
>     #0 0x1042011e5 in CRsFecHeader::GetSourceBlockNumber() const
> RsFecHeader.h:184
>
>     #1 0x104208fe1 in CMariRSRecoveryDecoder::flushSrcPackets(CRsFecHeader&)
> MariRSRecoveryDecoder.cpp:726
>
>     #2 0x10421011c in CMariRSRecoveryDecoder::recover(CRsFecHeader&)
> MariRSRecoveryDecoder.cpp:650
>
>     #3 0x1042175cd in CMariRSRecoveryDecoder::receiveInd(unsigned int,
> unsigned short, unsigned char const*, unsigned long, bool, unsigned int)
> MariRSRecoveryDecoder.cpp:890
>
>     #4 0x10417e192 in LLVMFuzzerTestOneInput fec_decode_fuzz.cpp:42
>
>     #5 0x10427e4d1 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*,
> unsigned long) (decode_fuzz_test:x86_64+0x1001024d1)
>
>     #6 0x104255a5c in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*,
> unsigned long) (decode_fuzz_test:x86_64+0x1000d9a5c)
>
>     #7 0x1042610fd in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned
> char const*, unsigned long)) (decode_fuzz_test:x86_64+0x1000e50fd)
>
>     #8 0x104254c9f in main (decode_fuzz_test:x86_64+0x1000d8c9f)
>
>     #9 0x7fffc092a234 in start (libdyld.dylib:x86_64+0x5234)
>
>
> 0x625000003992 is located 4242 bytes inside of 8448-byte region
> [0x625000002900,0x625000004a00)
>
> allocated by thread T0 here:
>
>     #0 0x106414162  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x63162)
>
>     #1 0x104246775 in std::__1::__split_buffer<fecPacket,
> std::__1::allocator<fecPacket>&>::__split_buffer(unsigned long, unsigned
> long, std::__1::allocator<fecPacket>&) new:226
>
>     #2 0x1042448eb in std::__1::__split_buffer<fecPacket,
> std::__1::allocator<fecPacket>&>::__split_buffer(unsigned long, unsigned
> long, std::__1::allocator<fecPacket>&) __split_buffer:310
>
>     #3 0x104243955 in void std::__1::vector<fecPacket,
> std::__1::allocator<fecPacket> >::__push_back_slow_path<fecPacket
> const&>(fecPacket const&&&) vector:1567
>
>     #4 0x104217167 in CMariRSRecoveryDecoder::receiveInd(unsigned int,
> unsigned short, unsigned char const*, unsigned long, bool, unsigned int)
> vector:1588
>
>     #5 0x10417e192 in LLVMFuzzerTestOneInput fec_decode_fuzz.cpp:42
>
>     #6 0x10427e4d1 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*,
> unsigned long) (decode_fuzz_test:x86_64+0x1001024d1)
>
>     #7 0x104255a5c in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*,
> unsigned long) (decode_fuzz_test:x86_64+0x1000d9a5c)
>
>     #8 0x1042610fd in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned
> char const*, unsigned long)) (decode_fuzz_test:x86_64+0x1000e50fd)
>
>     #9 0x104254c9f in main (decode_fuzz_test:x86_64+0x1000d8c9f)
>
>     #10 0x7fffc092a234 in start (libdyld.dylib:x86_64+0x5234)
>
>
> HINT: if you don't care about these errors you may set
> ASAN_OPTIONS=detect_container_overflow=0.
>
> If you suspect a false positive see also:
> https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow.
>
> SUMMARY: AddressSanitizer: container-overflow RsFecHeader.h:184 in
> CRsFecHeader::GetSourceBlockNumber() const
>
> Shadow bytes around the buggy address:
>
>   0x1c4a000006e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>   0x1c4a000006f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>   0x1c4a00000700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>   0x1c4a00000710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
>   0x1c4a00000720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> =>0x1c4a00000730: fc fc[fc]fc fc fc fc fc fc fc fc fc fc fc fc fc
>
>   0x1c4a00000740: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>
>   0x1c4a00000750: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>
>   0x1c4a00000760: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>
>   0x1c4a00000770: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>
>   0x1c4a00000780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>
> Shadow byte legend (one shadow byte represents 8 application bytes):
>
>   Addressable:           00
>
>   Partially addressable: 01 02 03 04 05 06 07
>
>   Heap left redzone:       fa
>
>   Freed heap region:       fd
>
>   Stack left redzone:      f1
>
>   Stack mid redzone:       f2
>
>   Stack right redzone:     f3
>
>   Stack after return:      f5
>
>   Stack use after scope:   f8
>
>   Global redzone:          f9
>
>   Global init order:       f6
>
>   Poisoned by user:        f7
>
>   Container overflow:      fc
>
>   Array cookie:            ac
>
>   Intra object redzone:    bb
>
>   ASan internal:           fe
>
>   Left alloca redzone:     ca
>
>   Right alloca redzone:    cb
>
> ==19407==ABORTING
>
> ==19407== ERROR: libFuzzer: deadly signal
>
>     #0 0x106410cf7 in __sanitizer_print_stack_trace
> (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5fcf7)
>
>     #1 0x10427b1cb in fuzzer::Fuzzer::CrashCallback()
> (decode_fuzz_test:x86_64+0x1000ff1cb)
>
>     #2 0x10427b17d in fuzzer::Fuzzer::StaticCrashSignalCallback()
> (decode_fuzz_test:x86_64+0x1000ff17d)
>
>     #3 0x1042e07d7 in fuzzer::CrashHandler(int, __siginfo*, void*)
> (decode_fuzz_test:x86_64+0x1001647d7)
>
>     #4 0x7fffc0b39b39 in _sigtramp (libsystem_platform.dylib:x86_64+0x2b39)
>
>     #5 0x7fff5ba7ae5f  (<unknown module>)
>
>     #6 0x7fffc09be41f in abort (libsystem_c.dylib:x86_64+0x5f41f)
>
>     #7 0x1064288e5  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x778e5)
>
>     #8 0x106427853  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x76853)
>
>     #9 0x10640dd76  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5cd76)
>
>     #10 0x10640d7e1  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5c7e1)
>
>     #11 0x10640e39a in __asan_report_load2
> (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5d39a)
>
>     #12 0x1042011e5 in CRsFecHeader::GetSourceBlockNumber() const
> RsFecHeader.h:184
>
>     #13 0x104208fe1 in
> CMariRSRecoveryDecoder::flushSrcPackets(CRsFecHeader&)
> MariRSRecoveryDecoder.cpp:726
>
>     #14 0x10421011c in CMariRSRecoveryDecoder::recover(CRsFecHeader&)
> MariRSRecoveryDecoder.cpp:650
>
>     #15 0x1042175cd in CMariRSRecoveryDecoder::receiveInd(unsigned int,
> unsigned short, unsigned char const*, unsigned long, bool, unsigned int)
> MariRSRecoveryDecoder.cpp:890
>
>     #16 0x10417e192 in LLVMFuzzerTestOneInput fec_decode_fuzz.cpp:42
>
>     #17 0x10427e4d1 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*,
> unsigned long) (decode_fuzz_test:x86_64+0x1001024d1)
>
>     #18 0x104255a5c in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*,
> unsigned long) (decode_fuzz_test:x86_64+0x1000d9a5c)
>
>     #19 0x1042610fd in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned
> char const*, unsigned long)) (decode_fuzz_test:x86_64+0x1000e50fd)
>
>     #20 0x104254c9f in main (decode_fuzz_test:x86_64+0x1000d8c9f)
>
>     #21 0x7fffc092a234 in start (libdyld.dylib:x86_64+0x5234)
>
>
> NOTE: libFuzzer has rudimentary signal handlers.
>
>       Combine libFuzzer with AddressSanitizer or similar for better crash
> reports.
>
> SUMMARY: libFuzzer: deadly signal
>
>
> On Tuesday, August 22, 2017 at 3:22:04 PM UTC-7, kcc wrote:
>>
>>
>>
>> On Tue, Aug 22, 2017 at 3:09 PM, Jennifer Liu <lovejen...@gmail.com>
>> wrote:
>>>
>>> Thanks for taking look at this.
>>>
>>> asan should already be enabled for all libs and binaries. Here is the
>>> output:
>>
>>
>> I remember that container-overflow was more problematic on Mac (compared
>> to Linux) since more libs are potentially uninstrumented.
>>
>> In this case, try to add a printf that shows .size() and .capacity() of
>> the vector object at the time of acccess.
>> i.e. print 4 values:
>>   v.begin()
>>   v.begin() + v.capacity()
>>   v.begin() + v.size()
>>   ptr // the pointer that causes the crash.
>>
>> if ptr is less than v.begin() + v.size() it's a false positive, as
>> explained at
>> https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow#false-positives
>>
>>
>>>
>>>
>>> ==27158==ERROR: AddressSanitizer: container-overflow on address
>>> 0x6250004b8992 at pc 0x00010f37fdf6 bp 0x7fff508fd5c0 sp 0x7fff508fd5b8
>>> READ of size 2 at 0x6250004b8992 thread T0
>>>     #0 0x10f37fdf5 in CRsFecHeader::GetSourceBlockNumber() const
>>> RsFecHeader.h:184
>>>     #1 0x10f3872a7 in
>>> CMariRSRecoveryDecoder::flushSrcPackets(CRsFecHeader&)
>>> MariRSRecoveryDecoder.cpp:722
>>>     #2 0x10f38e3ee in CMariRSRecoveryDecoder::recover(CRsFecHeader&)
>>> MariRSRecoveryDecoder.cpp:649
>>>     #3 0x10f393365 in CMariRSRecoveryDecoder::receiveInd(unsigned int,
>>> unsigned short, unsigned char const*, unsigned long, bool, unsigned int)
>>> MariRSRecoveryDecoder.cpp:876
>>>     #4 0x10f2fd206 in LLVMFuzzerTestOneInput fec_decode_fuzz.cpp:42
>>>     #5 0x10f3f9a61 in fuzzer::Fuzzer::ExecuteCallback(unsigned char
>>> const*, unsigned long) (decode_fuzz_test:x86_64+0x1000fea61)
>>>     #6 0x10f3f8553 in fuzzer::Fuzzer::RunOne(unsigned char const*,
>>> unsigned long, bool, fuzzer::InputInfo*)
>>> (decode_fuzz_test:x86_64+0x1000fd553)
>>>     #7 0x10f3ff200 in fuzzer::Fuzzer::MutateAndTestOne()
>>> (decode_fuzz_test:x86_64+0x100104200)
>>>     #8 0x10f3ffac2 in fuzzer::Fuzzer::Loop()
>>> (decode_fuzz_test:x86_64+0x100104ac2)
>>>     #9 0x10f3de11a in fuzzer::FuzzerDriver(int*, char***, int
>>> (*)(unsigned char const*, unsigned long))
>>> (decode_fuzz_test:x86_64+0x1000e311a)
>>>     #10 0x10f3d022f in main (decode_fuzz_test:x86_64+0x1000d522f)
>>>     #11 0x7fffc092a234 in start (libdyld.dylib:x86_64+0x5234)
>>>
>>> 0x6250004b8992 is located 4242 bytes inside of 8448-byte region
>>> [0x6250004b7900,0x6250004b9a00)
>>> allocated by thread T0 here:
>>>     #0 0x1107c7162  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x63162)
>>>     #1 0x10f3c1d05 in std::__1::__split_buffer<fecPacket,
>>> std::__1::allocator<fecPacket>&>::__split_buffer(unsigned long, unsigned
>>> long, std::__1::allocator<fecPacket>&) new:226
>>>     #2 0x10f3bfe7b in std::__1::__split_buffer<fecPacket,
>>> std::__1::allocator<fecPacket>&>::__split_buffer(unsigned long, unsigned
>>> long, std::__1::allocator<fecPacket>&) __split_buffer:310
>>>     #3 0x10f3beee5 in void std::__1::vector<fecPacket,
>>> std::__1::allocator<fecPacket> >::__push_back_slow_path<fecPacket
>>> const&>(fecPacket const&&&) vector:1567
>>>     #4 0x10f392f02 in CMariRSRecoveryDecoder::receiveInd(unsigned int,
>>> unsigned short, unsigned char const*, unsigned long, bool, unsigned int)
>>> vector:1588
>>>     #5 0x10f2fd206 in LLVMFuzzerTestOneInput fec_decode_fuzz.cpp:42
>>>     #6 0x10f3f9a61 in fuzzer::Fuzzer::ExecuteCallback(unsigned char
>>> const*, unsigned long) (decode_fuzz_test:x86_64+0x1000fea61)
>>>     #7 0x10f3f8553 in fuzzer::Fuzzer::RunOne(unsigned char const*,
>>> unsigned long, bool, fuzzer::InputInfo*)
>>> (decode_fuzz_test:x86_64+0x1000fd553)
>>>     #8 0x10f3ff200 in fuzzer::Fuzzer::MutateAndTestOne()
>>> (decode_fuzz_test:x86_64+0x100104200)
>>>     #9 0x10f3ffac2 in fuzzer::Fuzzer::Loop()
>>> (decode_fuzz_test:x86_64+0x100104ac2)
>>>     #10 0x10f3de11a in fuzzer::FuzzerDriver(int*, char***, int
>>> (*)(unsigned char const*, unsigned long))
>>> (decode_fuzz_test:x86_64+0x1000e311a)
>>>     #11 0x10f3d022f in main (decode_fuzz_test:x86_64+0x1000d522f)
>>>     #12 0x7fffc092a234 in start (libdyld.dylib:x86_64+0x5234)
>>>
>>> HINT: if you don't care about these errors you may set
>>> ASAN_OPTIONS=detect_container_overflow=0.
>>> If you suspect a false positive see also:
>>> https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow.
>>> SUMMARY: AddressSanitizer: container-overflow RsFecHeader.h:184 in
>>> CRsFecHeader::GetSourceBlockNumber() const
>>> Shadow bytes around the buggy address:
>>>   0x1c4a000970e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>   0x1c4a000970f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>   0x1c4a00097100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>   0x1c4a00097110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>   0x1c4a00097120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>> =>0x1c4a00097130: fc fc[fc]fc fc fc fc fc fc fc fc fc fc fc fc fc
>>>   0x1c4a00097140: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>>>   0x1c4a00097150: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>>>   0x1c4a00097160: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>>>   0x1c4a00097170: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>>>   0x1c4a00097180: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>>> Shadow byte legend (one shadow byte represents 8 application bytes):
>>>   Addressable:           00
>>>   Partially addressable: 01 02 03 04 05 06 07
>>>   Heap left redzone:       fa
>>>   Freed heap region:       fd
>>>   Stack left redzone:      f1
>>>   Stack mid redzone:       f2
>>>   Stack right redzone:     f3
>>>   Stack after return:      f5
>>>   Stack use after scope:   f8
>>>   Global redzone:          f9
>>>   Global init order:       f6
>>>   Poisoned by user:        f7
>>>   Container overflow:      fc
>>>   Array cookie:            ac
>>>   Intra object redzone:    bb
>>>   ASan internal:           fe
>>>   Left alloca redzone:     ca
>>>   Right alloca redzone:    cb
>>> ==27158==ABORTING
>>> MS: 2 ChangeBinInt-CrossOver-; base unit:
>>> 39df3a26431dc09379d257bc172adeab21071c68
>>> artifact_prefix='./'; Test unit written to
>>> ./crash-96da7f498ec50184b4a59ff76016825944944534
>>> ==27158== ERROR: libFuzzer: deadly signal
>>>     #0 0x1107c3cf7 in __sanitizer_print_stack_trace
>>> (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5fcf7)
>>>     #1 0x10f3f675b in fuzzer::Fuzzer::CrashCallback()
>>> (decode_fuzz_test:x86_64+0x1000fb75b)
>>>     #2 0x10f3f670d in fuzzer::Fuzzer::StaticCrashSignalCallback()
>>> (decode_fuzz_test:x86_64+0x1000fb70d)
>>>     #3 0x10f45bd67 in fuzzer::CrashHandler(int, __siginfo*, void*)
>>> (decode_fuzz_test:x86_64+0x100160d67)
>>>     #4 0x7fffc0b39b39 in _sigtramp
>>> (libsystem_platform.dylib:x86_64+0x2b39)
>>>     #5 0x7fff508fc41f  (<unknown module>)
>>>     #6 0x7fffc09be41f in abort (libsystem_c.dylib:x86_64+0x5f41f)
>>>     #7 0x1107db8e5  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x778e5)
>>>     #8 0x1107da853  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x76853)
>>>     #9 0x1107c0d76  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5cd76)
>>>     #10 0x1107c07e1  (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5c7e1)
>>>     #11 0x1107c139a in __asan_report_load2
>>> (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5d39a)
>>>     #12 0x10f37fdf5 in CRsFecHeader::GetSourceBlockNumber() const
>>> RsFecHeader.h:184
>>>     #13 0x10f3872a7 in
>>> CMariRSRecoveryDecoder::flushSrcPackets(CRsFecHeader&)
>>> MariRSRecoveryDecoder.cpp:722
>>>     #14 0x10f38e3ee in CMariRSRecoveryDecoder::recover(CRsFecHeader&)
>>> MariRSRecoveryDecoder.cpp:649
>>>     #15 0x10f393365 in CMariRSRecoveryDecoder::receiveInd(unsigned int,
>>> unsigned short, unsigned char const*, unsigned long, bool, unsigned int)
>>> MariRSRecoveryDecoder.cpp:876
>>>     #16 0x10f2fd206 in LLVMFuzzerTestOneInput fec_decode_fuzz.cpp:42
>>>     #17 0x10f3f9a61 in fuzzer::Fuzzer::ExecuteCallback(unsigned char
>>> const*, unsigned long) (decode_fuzz_test:x86_64+0x1000fea61)
>>>     #18 0x10f3f8553 in fuzzer::Fuzzer::RunOne(unsigned char const*,
>>> unsigned long, bool, fuzzer::InputInfo*)
>>> (decode_fuzz_test:x86_64+0x1000fd553)
>>>     #19 0x10f3ff200 in fuzzer::Fuzzer::MutateAndTestOne()
>>> (decode_fuzz_test:x86_64+0x100104200)
>>>     #20 0x10f3ffac2 in fuzzer::Fuzzer::Loop()
>>> (decode_fuzz_test:x86_64+0x100104ac2)
>>>     #21 0x10f3de11a in fuzzer::FuzzerDriver(int*, char***, int
>>> (*)(unsigned char const*, unsigned long))
>>> (decode_fuzz_test:x86_64+0x1000e311a)
>>>     #22 0x10f3d022f in main (decode_fuzz_test:x86_64+0x1000d522f)
>>>     #23 0x7fffc092a234 in start (libdyld.dylib:x86_64+0x5234)
>>>
>>> NOTE: libFuzzer has rudimentary signal handlers.
>>>       Combine libFuzzer with AddressSanitizer or similar for better crash
>>> reports.
>>> SUMMARY: libFuzzer: deadly signal
>>> MS: 2 ChangeBinInt-CrossOver-; base unit:
>>> 39df3a26431dc09379d257bc172adeab21071c68
>>> artifact_prefix='./'; Test unit written to
>>> ./crash-96da7f498ec50184b4a59ff76016825944944534
>>>
>>>
>>>
>>> On Tuesday, August 22, 2017 at 12:44:53 PM UTC-7, Evgeniy Stepanov wrote:
>>>>
>>>> I don't know how common this algorithm is, given that it does N^2
>>>> operations to remove N elements.
>>>>
>>>> But I don't see any container overflow here. Could you post the actual
>>>> report?
>>>>
>>>> Does this look relevant to your setup:
>>>>
>>>> https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow#false-positives
>>>>
>>>> On Tue, Aug 22, 2017 at 11:54 AM, Jennifer Liu <lovejen...@gmail.com>
>>>> wrote:
>>>> > Is this false alarm of "container-overflow", it looks like very common
>>>> > way
>>>> > to remove elements by iterator in while loop.
>>>> >
>>>> >
>>>> >     std::vector<Packet>::iterator it = m_packets.begin();
>>>> >
>>>> >     while (it != m_packets.end()) {
>>>> >
>>>> >         if (it->header.GetSourceBlockNumber() <=
>>>> > rsrp.GetSourceBlockNumber()) {
>>>> >
>>>> >             if (it->repair.pData != NULL) {
>>>> >
>>>> >                 free(it->repair.pData);
>>>> >
>>>> >                 it->repair.pData = NULL;
>>>> >
>>>> >             }
>>>> >
>>>> >             it = m_packets.erase(it);
>>>> >
>>>> >         } else {
>>>> >
>>>> >             ++it;
>>>> >
>>>> >         }
>>>> >
>>>> >     }
>>>> >
>>>> >
>>>> > Thanks
>>>> >
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> > Groups
>>>> > "address-sanitizer" group.
>>>> > To unsubscribe from this group and stop receiving emails from it, send
>>>> > an
>>>> > email to address-saniti...@googlegroups.com.
>>>> > For more options, visit https://groups.google.com/d/optout.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "address-sanitizer" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to address-saniti...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
> --
> You received this message because you are subscribed to the Google Groups
> "address-sanitizer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to address-sanitizer+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to address-sanitizer+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to