diff --git a/atftp/atftp.spec b/atftp/atftp.spec index e674d86..73ce3a9 100644 --- a/atftp/atftp.spec +++ b/atftp/atftp.spec @@ -2,7 +2,7 @@ Name: atftp Summary: Advanced Trivial File Transfer Protocol (ATFTP) - TFTP server Group: System Environment/Daemons Version: 0.7 -Release: 8 +Release: 9 License: GPL Vendor: Linux Networx Inc. Source: atftp_0.7.dfsg.orig.tar.gz @@ -11,6 +11,7 @@ Patch: atftp_0.7.dfsg-3.diff Patch1: dfsg-3-to-multicast.diff Patch2: dfsg-3-bigfiles.diff Patch3: dfsg-3-to-winpaths.diff +Patch4: dfsg-3-mclistfix.diff Buildroot: /var/tmp/atftp-buildroot Packager: Allen Reese Conflicts: tftp-server @@ -40,6 +41,7 @@ files using the TFTP protocol. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %build @@ -86,6 +88,9 @@ fi %changelog +* Wed Oct 29 2008 David Darrington +- Fix multicast server segfault + * Sat Oct 20 2007 Jarrod Johnson - Update with debian patch diff --git a/atftp/dfsg-3-mclistfix.diff b/atftp/dfsg-3-mclistfix.diff new file mode 100644 index 0000000..6bf586b --- /dev/null +++ b/atftp/dfsg-3-mclistfix.diff @@ -0,0 +1,31 @@ +--- atftp-0.7.dfsg/tftpd_list.c 2008-10-28 09:42:36.000000000 -0500 ++++ atftp-0.7.dfsg.new/tftpd_list.c 2008-10-28 10:02:55.000000000 -0500 +@@ -137,7 +137,7 @@ + struct thread_data *data, + struct client_info *client) + { +- struct thread_data *current = thread_data; /* head of the list */ ++ struct thread_data *current; + struct tftp_opt *tftp_options = data->tftp_options; + struct client_info *tmp; + +@@ -146,6 +146,8 @@ + /* lock the whole list before walking it */ + pthread_mutex_lock(&thread_list_mutex); + ++ current = thread_data; /* head of the list */ ++ + while (current) + { + if (current != data) +--- atftp-0.7.dfsg/options.h 2008-10-28 09:42:36.000000000 -0500 ++++ atftp-0.7.dfsg.new/options.h 2008-10-28 10:06:06.000000000 -0500 +@@ -45,6 +45,7 @@ + void opt_set_multicast(struct tftp_opt *options, char *addr, int port, int mc); + void opt_request_to_string(struct tftp_opt *options, char *string, int len); + void opt_options_to_string(struct tftp_opt *options, char *string, int len); +-int opt_equal(struct tftp_opt *a,struct tftp_opt *b); ++int opt_equal(struct tftp_opt *a,struct tftp_opt *b); ++int opt_same_file(struct tftp_opt *opt1, struct tftp_opt *opt2); + #endif +