fix: Fix NULL dereference and memory leak in _mam_rsm_id_handler

Add NULL checks before calling 'strlen' and also ensures that the string
is long enough before attempting to offset it by 3.
This commit is contained in:
Michael Vetter
2026-02-27 20:25:10 +01:00
parent 776bc262d0
commit e15f659277

View File

@@ -2783,13 +2783,17 @@ _mam_rsm_id_handler(xmpp_stanza_t* const stanza, void* const userdata)
if (data->start_datestr) {
start_str = strdup(data->start_datestr);
// Convert to iso8601
start_str[strlen(start_str) - 3] = '\0';
if (start_str && strlen(start_str) >= 3) {
start_str[strlen(start_str) - 3] = '\0';
}
}
char* end_str = NULL;
auto_char char* end_str = NULL;
if (data->end_datestr) {
end_str = strdup(data->end_datestr);
// Convert to iso8601
end_str[strlen(end_str) - 3] = '\0';
if (end_str && strlen(end_str) >= 3) {
end_str[strlen(end_str) - 3] = '\0';
}
}
if (is_complete || !data->fetch_next) {