--- 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