diff options
author | Christoph Gysin | 2015-09-30 23:02:02 +0300 |
---|---|---|
committer | Christoph Gysin | 2015-09-30 23:02:02 +0300 |
commit | ddd5a37161756fa8c3ebdddd3cf19634932e8b42 (patch) | |
tree | bddf02bd28ac4eed2a6b212b4d177f9179e6e0dc /fix-double-free-error.patch | |
download | aur-ddd5a37161756fa8c3ebdddd3cf19634932e8b42.tar.gz |
initial commit
Diffstat (limited to 'fix-double-free-error.patch')
-rw-r--r-- | fix-double-free-error.patch | 40 |
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; + } |