ci+tests: skip libopenh264 on MinGW; fix UB varargs in the message-suite test

- FFmpeg for Windows no longer enables libopenh264 (redundant with the
  native h264 decoder + x264 encoder; its MinGW packaging does not
  satisfy the static link — Wels* undefined references)
- suites_test's question-type call passed a 3-placeholder format with
  one variadic arg — UB that vsnprintf turns into a SIGSEGV on glibc
  (masked on macOS); use a placeholder-free format
This commit is contained in:
2026-08-21 08:41:54 +08:00
parent cd95514cf8
commit 032a3a559b
2 changed files with 11 additions and 3 deletions
+5 -2
View File
@@ -579,15 +579,18 @@ fn message_suite_v1_v2() {
OK
);
}
// question 类型 + 无出口 → REPLY_NO(13)。
// question 类型 + 无出口 → REPLY_NO(13)。用无占位符的格式串:
// 占位符没有对应的变长参数是 UB(glibc 上 vsnprintf 对野指针
// strlen 直接 SIGSEGV;macOS 上恰好读到可映射内存才没崩)。
let q = cs("OfxMessageQuestion");
let plain = cs("really?");
unsafe {
assert_eq!(
(s.message)(
std::ptr::null_mut(),
q.as_ptr(),
id.as_ptr(),
fmt.as_ptr(),
plain.as_ptr(),
1
),
13