fragattacks/src/utils
Jouni Malinen 7c524a64c1 eloop: Fix cases where a socket is reopened from a timeout/signal handler
It was possible for a registered eloop socket handler to be unregistered
and re-registered for a re-opened socket with the same fd from a timeout
or signal handler. If such a case happened with the old socket having a
pending event waiting for processing, some eloop combinations could end
up calling the new handler function with the new socket and get stuck
waiting for an event that has not yet happened on the new socket. This
happened with timeout and signal handlers with all eloop.c types. In
addition to that, the epoll case could also trigger this when a socket
handler re-registered a re-opened socket.

Fix these by checking whether there has been socket handler changes
during processing and break the processing round by going back to
select/poll/epoll for an updated result if any changes are done during
the eloop handler calls before processing the old socket results.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
2015-07-23 18:39:35 +03:00
..
.gitignore Add build rules for building a library from src/utils files 2009-12-05 21:39:41 +02:00
base64.c base64: Try to avoid static analyzer warning (part 2) 2014-12-08 11:07:56 +02:00
base64.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
bitfield.c Fix bitfield_get_first_zero() to not read beyond buffer 2015-03-14 13:50:12 +02:00
bitfield.h Add bitfield routines 2013-04-27 22:16:40 +03:00
browser-android.c Clean up debug prints to use wpa_printf() 2014-12-26 13:20:57 +02:00
browser-system.c Clean up debug prints to use wpa_printf() 2014-12-26 13:20:57 +02:00
browser-wpadebug.c Clean up debug prints to use wpa_printf() 2014-12-26 13:20:57 +02:00
browser.c HS 2.0R2: Add wrapper functions for WebKit 2014-03-12 01:09:21 +02:00
browser.h HS 2.0R2: Add wrapper functions for WebKit 2014-03-12 01:09:21 +02:00
build_config.h Remove forgotten Xcode defines 2013-07-09 15:20:17 +03:00
common.c Use common is_ctrl_char() helper function 2015-04-22 11:44:19 +03:00
common.h Drop CONFIG_TI_COMPILER ifdefs 2015-07-17 21:57:07 +03:00
edit_readline.c edit: Fix libreadline history clearing with WPA_TRACE 2013-05-14 16:46:38 +03:00
edit_simple.c edit: Increase buffer size to 4096 bytes 2014-03-31 12:30:50 +03:00
edit.c edit: Increase buffer size to 4096 bytes 2014-03-31 12:30:50 +03:00
edit.h edit: Add support for setting prompt string 2012-08-05 20:46:34 +03:00
eloop_win.c Fix req_scan-deplete-timeout and update eloop API for this 2014-01-07 10:45:10 +02:00
eloop.c eloop: Fix cases where a socket is reopened from a timeout/signal handler 2015-07-23 18:39:35 +03:00
eloop.h Fix req_scan-deplete-timeout and update eloop API for this 2014-01-07 10:45:10 +02:00
ext_password_i.h EXT PW: Add framework for supporting external password storage 2012-08-03 22:15:42 +03:00
ext_password_test.c Clear wpa_supplicant configuration keys explicitly 2014-07-02 12:38:48 +03:00
ext_password.c EXT PW: Add framework for supporting external password storage 2012-08-03 22:15:42 +03:00
ext_password.h EXT PW: Add framework for supporting external password storage 2012-08-03 22:15:42 +03:00
http_curl.c http-curl: Improve log messages 2015-03-28 11:23:16 +02:00
http-utils.h HS 2.0R2: Add parse_cert command for debugging purposes 2014-03-12 01:09:22 +02:00
includes.h Drop CONFIG_TI_COMPILER ifdefs 2015-07-17 21:57:07 +03:00
ip_addr.c Remove unused hostapd_ip_diff() 2014-05-26 17:21:44 +03:00
ip_addr.h Remove unused hostapd_ip_diff() 2014-05-26 17:21:44 +03:00
list.h trace: Initialize alloc_list even without os_program_init() call 2015-02-21 17:34:37 +02:00
Makefile Add CONFIG_CODE_COVERAGE=y option for gcov 2013-11-24 19:16:12 +02:00
os_internal.c Clean up debug prints to use wpa_printf() 2014-12-26 13:20:57 +02:00
os_none.c Fix CONFIG_OS=none build 2014-12-25 16:37:12 +02:00
os_unix.c trace: Use explicit alignment requirements to avoid misalignment 2015-07-07 16:25:06 +03:00
os_win32.c Fix os_win32 build 2015-01-11 00:58:10 +02:00
os.h Add backtrace-based error path testing mechanism 2015-06-29 23:23:56 +03:00
pcsc_funcs.c PCSC: Make AID copying easier for static analyzers 2014-12-06 12:16:32 +02:00
pcsc_funcs.h SCARD: Clean up SIM/USIM selection 2013-11-17 16:47:38 +02:00
platform.h radiotap: Fix compilation for systems without le16toh/le32toh 2014-04-24 12:15:32 +03:00
radiotap_iter.h radiotap: Update radiotap parser to library version 2014-04-13 23:49:59 +03:00
radiotap.c radiotap: Avoid ubsan warning on 1<<31 2015-07-07 16:25:06 +03:00
radiotap.h radiotap: Update radiotap parser to library version 2014-04-13 23:49:59 +03:00
state_machine.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
trace.c trace: Fix out-of-memory testing logic 2015-01-10 17:35:53 +02:00
trace.h Add support for testing memory allocation failures 2015-01-07 13:19:43 +02:00
utils_module_tests.c tests: eloop socket re-open from timeout/socket handler 2015-07-23 18:39:02 +03:00
uuid.c Check os_snprintf() result more consistently - automatic 1 2014-12-08 11:42:07 +02:00
uuid.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
wpa_debug.c hostapd: Global control interface notifications 2015-07-16 12:33:29 +03:00
wpa_debug.h hostapd: Global control interface notifications 2015-07-16 12:33:29 +03:00
wpabuf.c trace: Use explicit alignment requirements to avoid misalignment 2015-07-07 16:25:06 +03:00
wpabuf.h Add wpabuf_clear_free() to allow clearing of freed memory 2015-01-05 18:02:04 +02:00
xml_libxml2.c HS 2.0R2: Add wrapper functions for libxml2 2014-03-12 01:09:22 +02:00
xml-utils.c HS 2.0R2: Add wrapper functions for libxml2 2014-03-12 01:09:22 +02:00
xml-utils.h XML: Remove forgotten, unused definition of debug_print_func 2014-03-31 12:25:13 +03:00