mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-09 03:00:20 +01:00
platform/tests: better handling "timeout_msec" argument in nmtst_main_context_iterate_until()
nmtst_main_context_iterate_until() is a macro, and we don't want to restrict the valid integer type (or range) of the "timeout_msec" argument. In particular, if the user calculates a timeout with "timestamp_msec - now_msec", the resulting "timeout_msec" might be a negative gint64. We should handle that gracefully, and not let it be cast to a huge unsigned int. (cherry picked from commit6cb6888404) (cherry picked from commit4d572bea7e)
This commit is contained in:
parent
fcb436ea8e
commit
95b74a3bde
1 changed files with 5 additions and 1 deletions
|
|
@ -1117,8 +1117,12 @@ _nmtst_main_loop_quit_on_notify (GObject *object, GParamSpec *pspec, gpointer us
|
|||
nm_auto_destroy_and_unref_gsource GSource *_source = NULL; \
|
||||
GMainContext *_context = (context); \
|
||||
gboolean _had_timeout = FALSE; \
|
||||
typeof(timeout_msec) _timeout_msec0 = (timeout_msec); \
|
||||
gint64 _timeout_msec = _timeout_msec0; \
|
||||
\
|
||||
_source = g_timeout_source_new (timeout_msec); \
|
||||
g_assert_cmpint(_timeout_msec0, ==, _timeout_msec); \
|
||||
\
|
||||
_source = g_timeout_source_new (NM_CLAMP (_timeout_msec, 0, (gint64) G_MAXUINT)); \
|
||||
g_source_set_callback (_source, nmtst_g_source_set_boolean_true, &_had_timeout, NULL); \
|
||||
g_source_attach (_source, _context); \
|
||||
\
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue