common: Check for valid GDateTime object before comparing

Avoids the critical below at runtime
11:14:36.7796                   **[873815]:CRITICAL: cc_util_get_smart_date: assertion 'date != NULL' failed
11:14:36.7802                   **[873815]:CRITICAL: cc_util_get_smart_date: assertion 'date != NULL' failed

Which comes from the location panel passing a NULL date object.

\#0  _g_log_abort (breakpoint=1) at ../shell/cc-log.c:72
        debugger_present = 1
\#1  0x000000000045c3c4 in cc_log_write
    (log_level=10, log_domain=0x7ffff7d592eb "GLib", log_message=0x234c400 "g_date_time_difference: assertion 'begin != NULL' failed", fields=0x7fffffffd740, n_fields=4, user_data=0x0)
    at ../shell/cc-log.c:315
        log_str = 0x234b8d0
        stream = 0x7ffff5dbb4e0 <_IO_2_1_stderr_>
        can_color = 1
\#2  0x000000000045c4f5 in cc_log_handler (log_level=G_LOG_LEVEL_CRITICAL, fields=0x7fffffffd740, n_fields=4, user_data=0x0) at ../shell/cc-log.c:348
        log_domain = 0x7ffff7d592eb "GLib"
        log_message = 0x234c400 "g_date_time_difference: assertion 'begin != NULL' failed"
\#3  0x00007ffff7c9f534 in g_log_structured_array () at /lib64/libglib-2.0.so.0
\#4  0x00007ffff7ca4f57 in g_log_default_handler () at /lib64/libglib-2.0.so.0
\#5  0x00007ffff7c9be29 in g_logv () at /lib64/libglib-2.0.so.0
\#6  0x00007ffff7c9c193 in g_log () at /lib64/libglib-2.0.so.0
\#7  0x00007ffff7c787fa in g_date_time_difference () at /lib64/libglib-2.0.so.0
\#8  0x000000000059c186 in cc_util_get_smart_date (date=0x0) at ../panels/common/cc-util.c:124
        today = 0x2350130
        local = 0x2350100
        span = 10791504
\#9  0x00000000004f8a20 in add_location_app (self=0x1dee1c0, app_id=0x232fef0 "org.gnome.Calendar", enabled=1, last_used=459618461810) at ../panels/privacy/cc-location-page.c:209
        data = 0xffffda80
        app_info = 0x2341c50
        t = 0x0
        row = 0x2348280
        w = 0x234fe00
        icon = 0x2345310
        last_used_str = 0x0
        desktop_id = 0x7fffcc034c30 "DL\310\375\a"
\#10 0x00000000004f8db4 in update_perm_store (self=0x1dee1c0, permissions=0x7fffcc04e2c0, permissions_data=0x7fffcc04ee80) at ../panels/privacy/cc-location-page.c:282
        enabled = 1
        last_used = 459618461810
        iter = {x = {140736616260288, 2, 0, 6386038, 140736616096608, 36922576, 16, 3579507750, 140737488345904, 140737350561909, 33733184, 36922576, 140737488345936, 140737350702366, 36922576, 3278251457363369984}}
        key = 0x232fef0 "org.gnome.Calendar"
        value = 0x7fffcc04e090
\#11 0x00000000004f8f4e in on_perm_store_lookup_done (source_object=0x1e24040, res=0x202ba40, user_data=0x1dee1c0) at ../panels/privacy/cc-location-page.c:324
        error = 0x0
        ret = 0x7fffcc04eef0
        permissions = 0x7fffcc04e2c0
        permissions_data = 0x7fffcc04ee80
\#12 0x00007ffff7e9082c in g_task_return_now () at /lib64/libgio-2.0.so.0
\#13 0x00007ffff7e944c3 in g_task_return () at /lib64/libgio-2.0.so.0
\#14 0x00007ffff7efe88b in reply_cb () at /lib64/libgio-2.0.so.0
\#15 0x00007ffff7e9082c in g_task_return_now () at /lib64/libgio-2.0.so.0
\#16 0x00007ffff7e944c3 in g_task_return () at /lib64/libgio-2.0.so.0
This commit is contained in:
Felipe Borges 2024-03-15 11:17:57 +01:00
parent e6de817031
commit 544c146ea8

View file

@ -114,6 +114,9 @@ cc_util_get_smart_date (GDateTime *date)
g_autoptr(GDateTime) local = NULL;
GTimeSpan span;
if (date == NULL)
return NULL;
/* Set today date */
local = g_date_time_new_now_local ();
today = g_date_time_new_local (g_date_time_get_year (local),