haolei / tcpcopy

Automatically exported from code.google.com/p/tcpcopy
Other
1 stars 1 forks source link

udp多份复制时,报文未释放,存在内存泄露的问题 #5

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
一、操作步骤:
1、启用udp多份复制;
2、出现内存泄露;

二、版本
tcpcopy-0.8.0版本

三、问题代码
tc_packets_module.c/L291
        if (replica_num > 1) {
            packet_valid = process_packet(true, packet, recv_len);
            replicate_packs(packet, recv_len, replica_num);
        } else {
            packet_valid = process_packet(false, packet, recv_len);
        }

四、正确修复后的代码
        if (replica_num > 1) {
             replicate_packs(packet, recv_len, replica_num);
        }

       packet_valid = process_packet(false, packet, recv_len);

Original issue reported on code.google.com by rotosixc...@gmail.com on 21 Aug 2013 at 3:23

Attachments:

GoogleCodeExporter commented 9 years ago
多谢你的修改建议,这样修改确实能改进代码。
不过不明白原来的方式为啥会有内存泄漏呢?能否给出内存��
�漏工具的检测结果呢?

Original comment by 163.beij...@gmail.com on 21 Aug 2013 at 3:47

GoogleCodeExporter commented 9 years ago
利用valgrind运行了一下:
[root@hz0-12-162 tcpcopy]# valgrind --tool=memcheck --leak-check=yes 
--show-reachable=yes ./tcpcopy -x 514-10.120.12.148:514 -n 2 2>memcheck.txt
复制两份到测试系统,显示没有内存泄漏

==20013== Memcheck, a memory error detector.
==20013== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==20013== Using LibVEX rev 1658, a library for dynamic binary translation.
==20013== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==20013== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==20013== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==20013== For more details, rerun with: -v
==20013==
==20013==
==20013== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 1)
==20013== malloc/free: in use at exit: 0 bytes in 0 blocks.
==20013== malloc/free: 53 allocs, 53 frees, 11,379 bytes allocated.
==20013== For counts of detected errors, rerun with: -v
==20013== All heap blocks were freed -- no leaks are possible.

并没有显示内存泄漏

Original comment by 163.beij...@gmail.com on 21 Aug 2013 at 9:24