From 46ea748773d22ce3c93b5caaa85b7bef1ef611c3 Mon Sep 17 00:00:00 2001 From: Andrei Gramakov Date: Sun, 22 Feb 2026 11:56:12 +0100 Subject: [PATCH] Fix VS ARM64-related issues with time and source location --- CHANGELOG.md | 6 ++++++ src/ulog.c | 5 ++++- version | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76fccda..a2f1320 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v7.0.1] - February 22, 2026 + +### Fixed + +- Fixed a crash on ARM64 Windows where `va_start` corrupted the `time` field in a log event, causing an assertion failure inside `strftime()`. + ## [v7.0.0] - October 23, 2025 > 🚨 **BREAKING CHANGES**: Complete API redesign from v6.5.0. This is a major architectural overhaul with new type system, function names, and build configuration. diff --git a/src/ulog.c b/src/ulog.c index db1cf1d..e876295 100644 --- a/src/ulog.c +++ b/src/ulog.c @@ -1797,8 +1797,11 @@ void ulog_log(ulog_level level, const char *file, int line, const char *topic, } ulog_event ev = {0}; - log_fill_event(&ev, message, level, file, line, topic_id); va_start(ev.message_format_args, message); + + // IMPORTANT: filling the events should be after the vs_start for compatibility + // with the VS ARM64 compiler behavior + log_fill_event(&ev, message, level, file, line, topic_id); prefix_update(&ev); diff --git a/version b/version index 66ce77b..9fe9ff9 100644 --- a/version +++ b/version @@ -1 +1 @@ -7.0.0 +7.0.1