mirror of
https://github.com/pentoo/pentoo-overlay
synced 2025-12-22 16:23:57 +01:00
43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
Re-merged patch by Robert Scheck <robert@fedoraproject.org> for tcpick <= 0.2.1,
|
|
which fixes a double-free error detected by glibc on runtime during the execute of
|
|
commands like "tcpick -wu -p -i eth0" causing a infinite loop after recording some
|
|
sessions. The patch is originally from Cédric Delfosse <cedric@debian.org>.
|
|
|
|
Further information:
|
|
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=319864
|
|
- http://sourceforge.net/mailarchive/message.php?msg_id=20647778
|
|
|
|
--- tcpick-0.2.1/src/tracker.c 2004-12-31 14:53:30.000000000 +0100
|
|
+++ tcpick-0.2.1/src/tracker.c.cpu-loop 2006-09-10 00:17:59.000000000 +0200
|
|
@@ -99,8 +99,11 @@
|
|
if( curr->next == NULL )
|
|
last_conn = prev_ring;
|
|
|
|
- free_desc( &(curr->client) );
|
|
- free_desc( &(curr->server) );
|
|
+ free_desc( &(curr->client), 1);
|
|
+ if (flags.writer.type == UNIQUE)
|
|
+ free_desc( &(curr->server), 0);
|
|
+ else
|
|
+ free_desc( &(curr->server), 1);
|
|
S_free( curr );
|
|
|
|
conn = first_conn;
|
|
@@ -124,7 +127,7 @@
|
|
count_opened--;
|
|
}
|
|
|
|
-int free_desc( struct HOST_DESC * desc )
|
|
+int free_desc( struct HOST_DESC * desc, int freedescfilename )
|
|
/* frees the host descriptor and closes the file */
|
|
{
|
|
struct FRAGMENT * tmp;
|
|
@@ -134,7 +137,7 @@
|
|
if (flags.writer.type == UNIQUE)
|
|
desc->oth->file = NULL;
|
|
}
|
|
- if( desc->filename ) {
|
|
+ if( desc->filename && freedescfilename ) {
|
|
S_free( desc->filename );
|
|
desc->filename = NULL;
|
|
}
|