diff options
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch')
-rw-r--r-- | meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch b/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch deleted file mode 100644 index 28fba6cf5..000000000 --- a/meta-openembedded/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch +++ /dev/null @@ -1,152 +0,0 @@ -Avoid assigning thread data outside of mutex lock - -Patch originally from OpenSUSE: -https://build.opensuse.org/package/show?package=atftp&project=openSUSE%3A12.2 - -Upstream-Status: Pending - -Index: git/tftpd_list.c -=================================================================== ---- git.orig/tftpd_list.c 2012-10-24 21:48:47.000000000 -0700 -+++ git/tftpd_list.c 2012-10-24 21:52:04.266205076 -0700 -@@ -49,11 +49,11 @@ - */ - int tftpd_list_add(struct thread_data *new) - { -- struct thread_data *current = thread_data; -+ struct thread_data *current; - int ret; - - pthread_mutex_lock(&thread_list_mutex); -- -+ current = thread_data; - number_of_thread++; - - ret = number_of_thread; -@@ -81,11 +81,13 @@ - */ - int tftpd_list_remove(struct thread_data *old) - { -- struct thread_data *current = thread_data; -+ struct thread_data *current; - int ret; - - pthread_mutex_lock(&thread_list_mutex); - -+ current = thread_data; -+ - number_of_thread--; - ret = number_of_thread; - -@@ -137,23 +139,26 @@ - struct thread_data *data, - struct client_info *client) - { -- struct thread_data *current = thread_data; /* head of the list */ -- struct tftp_opt *tftp_options = data->tftp_options; -+ struct thread_data *current; /* head of the list */ -+ struct tftp_opt *tftp_options; - struct client_info *tmp; - char options[MAXLEN]; - char string[MAXLEN]; - char *index; - int len; - -+ /* lock the whole list before walking it */ -+ pthread_mutex_lock(&thread_list_mutex); -+ - *thread = NULL; - -+ current = thread_data; -+ tftp_options = data->tftp_options; -+ - opt_request_to_string(tftp_options, options, MAXLEN); - index = strstr(options, "multicast"); - len = (int)index - (int)options; - -- /* lock the whole list before walking it */ -- pthread_mutex_lock(&thread_list_mutex); -- - while (current) - { - if (current != data) -@@ -214,9 +219,10 @@ - void tftpd_clientlist_remove(struct thread_data *thread, - struct client_info *client) - { -- struct client_info *tmp = thread->client_info; -+ struct client_info *tmp; - - pthread_mutex_lock(&thread->client_mutex); -+ tmp = thread->client_info; - while ((tmp->next != client) && (tmp->next != NULL)) - tmp = tmp->next; - if (tmp->next == NULL) -@@ -231,9 +237,11 @@ - void tftpd_clientlist_free(struct thread_data *thread) - { - struct client_info *tmp; -- struct client_info *head = thread->client_info; -+ struct client_info *head; - - pthread_mutex_lock(&thread->client_mutex); -+ head = thread->client_info; -+ - while (head) - { - tmp = head; -@@ -250,9 +258,10 @@ - struct client_info *client, - struct sockaddr_storage *sock) - { -- struct client_info *head = thread->client_info; -+ struct client_info *head; - - pthread_mutex_lock(&thread->client_mutex); -+ head = thread->client_info; - - if (client) - { -@@ -334,10 +343,10 @@ - - void tftpd_list_kill_threads(void) - { -- struct thread_data *current = thread_data; /* head of list */ -+ struct thread_data *current; /* head of list */ - - pthread_mutex_lock(&thread_list_mutex); -- -+ current = thread_data; - - while (current != NULL) - { -Index: git/tftpd_mcast.c -=================================================================== ---- git.orig/tftpd_mcast.c 2012-10-24 21:48:47.000000000 -0700 -+++ git/tftpd_mcast.c 2012-10-24 21:49:11.570201582 -0700 -@@ -51,9 +51,11 @@ - */ - int tftpd_mcast_get_tid(char **addr, short *port) - { -- struct tid *current = tid_list; -+ struct tid *current; - - pthread_mutex_lock(&mcast_tid_list); -+ current = tid_list; -+ - /* walk the list for a free tid */ - while (current != NULL) - { -@@ -74,9 +76,11 @@ - - int tftpd_mcast_free_tid(char *addr, short port) - { -- struct tid *current = tid_list; -+ struct tid *current; - - pthread_mutex_lock(&mcast_tid_list); -+ current = tid_list; -+ - while (current != NULL) - { - if ((current->used == 1) && (current->port == port) && |