--- a/sys/dev/drm/amd/display/modules/stats/stats.c +++ b/sys/dev/drm/amd/display/modules/stats/stats.c @@ -313,9 +313,12 @@ events = core_stats->events; index = core_stats->event_index; + if (length == 0) + return; + copy_length = length; - if (length > MOD_STATS_EVENT_STRING_MAX) - copy_length = MOD_STATS_EVENT_STRING_MAX; + if (copy_length >= MOD_STATS_EVENT_STRING_MAX) + copy_length = MOD_STATS_EVENT_STRING_MAX - 1; memcpy(&events[index].event_string, event_string, copy_length); events[index].event_string[copy_length - 1] = '\0';