fix: potential segfault in log_database_get_limits_info (upstream ff65db0b)

This commit is contained in:
2026-03-31 18:52:45 +03:00
parent f84ed1bf6a
commit 0b7ec1c5b6

View File

@@ -2686,8 +2686,10 @@ _iq_mam_request(ProfChatWin* win, GDateTime* startdate, GDateTime* enddate)
if (connection_supports(XMPP_FEATURE_MAM2) == FALSE) { if (connection_supports(XMPP_FEATURE_MAM2) == FALSE) {
log_warning("Server doesn't advertise %s feature.", XMPP_FEATURE_MAM2); log_warning("Server doesn't advertise %s feature.", XMPP_FEATURE_MAM2);
cons_show_error("Server doesn't support MAM (%s).", XMPP_FEATURE_MAM2); cons_show_error("Server doesn't support MAM (%s).", XMPP_FEATURE_MAM2);
g_date_time_unref(startdate); if (startdate)
g_date_time_unref(enddate); g_date_time_unref(startdate);
if (enddate)
g_date_time_unref(enddate);
return; return;
} }
@@ -2736,8 +2738,12 @@ void
iq_mam_request(ProfChatWin* win, GDateTime* enddate) iq_mam_request(ProfChatWin* win, GDateTime* enddate)
{ {
ProfMessage* last_msg = log_database_get_limits_info(win->barejid, TRUE); ProfMessage* last_msg = log_database_get_limits_info(win->barejid, TRUE);
GDateTime* startdate = g_date_time_ref(last_msg->timestamp); GDateTime* startdate = NULL;
message_free(last_msg); if (last_msg) {
if (last_msg->timestamp)
startdate = g_date_time_ref(last_msg->timestamp);
message_free(last_msg);
}
// Save request for later if disco items haven't been received yet // Save request for later if disco items haven't been received yet
if (!received_disco_items) { if (!received_disco_items) {