iface-modem: check error returned by g_task_propagate_error instead
When returning an enum value via g_task_return_int, some code assumes the enum value is always non-negative and thus considers that a negative value implies an error. This assumption could be invalidated if a negative value is later added to the enum. To make it less error prone to future changes, this patch modifies the code to check if the GError argument to g_task_propagate_error is populated instead.
This commit is contained in:
committed by
Aleksander Morgado
parent
ba3a7f0c69
commit
d56621b9a1
+14
-5
@@ -245,11 +245,15 @@ internal_load_unlock_required_finish (MMIfaceModem *self,
|
||||
GAsyncResult *res,
|
||||
GError **error)
|
||||
{
|
||||
GError *inner_error = NULL;
|
||||
gssize value;
|
||||
|
||||
value = g_task_propagate_int (G_TASK (res), error);
|
||||
|
||||
return value < 0 ? MM_MODEM_LOCK_UNKNOWN : (MMModemLock)value;
|
||||
value = g_task_propagate_int (G_TASK (res), &inner_error);
|
||||
if (inner_error) {
|
||||
g_propagate_error (error, inner_error);
|
||||
return MM_MODEM_LOCK_UNKNOWN;
|
||||
}
|
||||
return (MMModemLock)value;
|
||||
}
|
||||
|
||||
static void internal_load_unlock_required_context_step (GTask *task);
|
||||
@@ -2990,10 +2994,15 @@ mm_iface_modem_update_lock_info_finish (MMIfaceModem *self,
|
||||
GAsyncResult *res,
|
||||
GError **error)
|
||||
{
|
||||
GError *inner_error = NULL;
|
||||
gssize value;
|
||||
|
||||
value = g_task_propagate_int (G_TASK (res), error);
|
||||
return value < 0 ? MM_MODEM_LOCK_UNKNOWN : (MMModemLock)value;
|
||||
value = g_task_propagate_int (G_TASK (res), &inner_error);
|
||||
if (inner_error) {
|
||||
g_propagate_error (error, inner_error);
|
||||
return MM_MODEM_LOCK_UNKNOWN;
|
||||
}
|
||||
return (MMModemLock)value;
|
||||
}
|
||||
|
||||
static void update_lock_info_context_step (GTask *task);
|
||||
|
||||
Reference in New Issue
Block a user