diff options
author | lurchi <lurchi@strangeplace.net> | 2018-01-08 20:24:52 +0100 |
---|---|---|
committer | lurchi <lurchi@strangeplace.net> | 2018-01-08 20:24:52 +0100 |
commit | 5e233bcb4b48593af84c551738369fe89bc77251 (patch) | |
tree | 329db72696175f1b7b977bbff9f4fa3f7a156d31 /src/gns/gnunet-gns-proxy.c | |
parent | 05813c03feaf4e0513f813c424b566d74fbe9795 (diff) | |
download | gnunet-5e233bcb4b48593af84c551738369fe89bc77251.tar.gz gnunet-5e233bcb4b48593af84c551738369fe89bc77251.zip |
always set task NULL when cancel; make sure SCHEDULER_add* doesn't get invalid input
Diffstat (limited to 'src/gns/gnunet-gns-proxy.c')
-rw-r--r-- | src/gns/gnunet-gns-proxy.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c index 3af571eba..25092dcf0 100644 --- a/src/gns/gnunet-gns-proxy.c +++ b/src/gns/gnunet-gns-proxy.c | |||
@@ -1957,8 +1957,10 @@ mhd_log_callback (void *cls, | |||
1957 | } | 1957 | } |
1958 | s5r->url = GNUNET_strdup (url); | 1958 | s5r->url = GNUNET_strdup (url); |
1959 | if (NULL != s5r->timeout_task) | 1959 | if (NULL != s5r->timeout_task) |
1960 | { | ||
1960 | GNUNET_SCHEDULER_cancel (s5r->timeout_task); | 1961 | GNUNET_SCHEDULER_cancel (s5r->timeout_task); |
1961 | s5r->timeout_task = NULL; | 1962 | s5r->timeout_task = NULL; |
1963 | } | ||
1962 | GNUNET_assert (s5r->state == SOCKS5_SOCKET_WITH_MHD); | 1964 | GNUNET_assert (s5r->state == SOCKS5_SOCKET_WITH_MHD); |
1963 | return s5r; | 1965 | return s5r; |
1964 | } | 1966 | } |
@@ -2060,7 +2062,10 @@ schedule_httpd (struct MhdHttpList *hd) | |||
2060 | wws = NULL; | 2062 | wws = NULL; |
2061 | } | 2063 | } |
2062 | if (NULL != hd->httpd_task) | 2064 | if (NULL != hd->httpd_task) |
2065 | { | ||
2063 | GNUNET_SCHEDULER_cancel (hd->httpd_task); | 2066 | GNUNET_SCHEDULER_cancel (hd->httpd_task); |
2067 | hd->httpd_task = NULL; | ||
2068 | } | ||
2064 | if ( (MHD_YES != haveto) && | 2069 | if ( (MHD_YES != haveto) && |
2065 | (-1 == max) && | 2070 | (-1 == max) && |
2066 | (hd != httpd) ) | 2071 | (hd != httpd) ) |
@@ -2108,8 +2113,7 @@ do_httpd (void *cls) | |||
2108 | static void | 2113 | static void |
2109 | run_mhd_now (struct MhdHttpList *hd) | 2114 | run_mhd_now (struct MhdHttpList *hd) |
2110 | { | 2115 | { |
2111 | if (NULL != | 2116 | if (NULL != hd->httpd_task) |
2112 | hd->httpd_task) | ||
2113 | GNUNET_SCHEDULER_cancel (hd->httpd_task); | 2117 | GNUNET_SCHEDULER_cancel (hd->httpd_task); |
2114 | hd->httpd_task = GNUNET_SCHEDULER_add_now (&do_httpd, | 2118 | hd->httpd_task = GNUNET_SCHEDULER_add_now (&do_httpd, |
2115 | hd); | 2119 | hd); |
@@ -2891,18 +2895,17 @@ do_accept (void *cls) | |||
2891 | struct GNUNET_NETWORK_Handle *s; | 2895 | struct GNUNET_NETWORK_Handle *s; |
2892 | struct Socks5Request *s5r; | 2896 | struct Socks5Request *s5r; |
2893 | 2897 | ||
2894 | if (lsock == lsock4) | 2898 | GNUNET_assert (NULL != lsock); |
2895 | ltask4 = NULL; | ||
2896 | else | ||
2897 | ltask6 = NULL; | ||
2898 | if (lsock == lsock4) | 2899 | if (lsock == lsock4) |
2899 | ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 2900 | ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
2900 | lsock, | 2901 | lsock, |
2901 | &do_accept, lsock); | 2902 | &do_accept, lsock); |
2902 | else | 2903 | else if (lsock == lsock6) |
2903 | ltask6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 2904 | ltask6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
2904 | lsock, | 2905 | lsock, |
2905 | &do_accept, lsock); | 2906 | &do_accept, lsock); |
2907 | else | ||
2908 | GNUNET_assert (0); | ||
2906 | s = GNUNET_NETWORK_socket_accept (lsock, NULL, NULL); | 2909 | s = GNUNET_NETWORK_socket_accept (lsock, NULL, NULL); |
2907 | if (NULL == s) | 2910 | if (NULL == s) |
2908 | { | 2911 | { |