summarylogtreecommitdiffstats
path: root/fix-double-free-error.patch
diff options
context:
space:
mode:
authorChristoph Gysin2015-09-30 23:02:02 +0300
committerChristoph Gysin2015-09-30 23:02:02 +0300
commitddd5a37161756fa8c3ebdddd3cf19634932e8b42 (patch)
treebddf02bd28ac4eed2a6b212b4d177f9179e6e0dc /fix-double-free-error.patch
downloadaur-ddd5a37161756fa8c3ebdddd3cf19634932e8b42.tar.gz
initial commit
Diffstat (limited to 'fix-double-free-error.patch')
-rw-r--r--fix-double-free-error.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/fix-double-free-error.patch b/fix-double-free-error.patch
new file mode 100644
index 000000000000..c5d934b42100
--- /dev/null
+++ b/fix-double-free-error.patch
@@ -0,0 +1,40 @@
+Description: Fix double-free error
+ tcpick try to free twice the pointer to the filename it uses to write
+ the data. This patches fixes that.
+Author: Cedric Delfosse <cedric@debian.org>
+Bug-Debian: http://bugs.debian.org/319864
+Last-Update: 2005-07-26
+Origin: vendor, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=319864#19
+
+--- a/src/tracker.c
++++ b/src/tracker.c
+@@ -99,8 +99,9 @@ int rmconn( struct CONN * prev_ring )
+ 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 +125,7 @@ int rmconn( struct CONN * prev_ring )
+ 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 +135,7 @@ int free_desc( struct HOST_DESC * desc )
+ if (flags.writer.type == UNIQUE)
+ desc->oth->file = NULL;
+ }
+- if( desc->filename ) {
++ if( desc->filename && freedescfilename ) {
+ S_free( desc->filename );
+ desc->filename = NULL;
+ }