From 0b7ec1c5b6cee4f2a4acd33ceb063bddb9ff4050 Mon Sep 17 00:00:00 2001 From: "jabber.developer2" Date: Tue, 31 Mar 2026 18:52:45 +0300 Subject: [PATCH] fix: potential segfault in log_database_get_limits_info (upstream ff65db0b) --- src/xmpp/iq.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c index 24b5f1be..613c27ce 100644 --- a/src/xmpp/iq.c +++ b/src/xmpp/iq.c @@ -2686,8 +2686,10 @@ _iq_mam_request(ProfChatWin* win, GDateTime* startdate, GDateTime* enddate) if (connection_supports(XMPP_FEATURE_MAM2) == FALSE) { log_warning("Server doesn't advertise %s feature.", XMPP_FEATURE_MAM2); cons_show_error("Server doesn't support MAM (%s).", XMPP_FEATURE_MAM2); - g_date_time_unref(startdate); - g_date_time_unref(enddate); + if (startdate) + g_date_time_unref(startdate); + if (enddate) + g_date_time_unref(enddate); return; } @@ -2736,8 +2738,12 @@ void iq_mam_request(ProfChatWin* win, GDateTime* enddate) { ProfMessage* last_msg = log_database_get_limits_info(win->barejid, TRUE); - GDateTime* startdate = g_date_time_ref(last_msg->timestamp); - message_free(last_msg); + GDateTime* startdate = NULL; + 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 if (!received_disco_items) {