From a2fc4bf4796fb284e029d29e4145ffbb9552a2b2 Mon Sep 17 00:00:00 2001 From: Charlie Jiang Date: Sun, 6 Oct 2019 23:47:53 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix:=20lagi:=20Don't=20close=20i?= =?UTF-8?q?conv=5Ft=20if=20it=20is=20iconv=5Finvalid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When certain iconv_t is invalid, iconv_invalid(0xfffffffffffffffffffffff) will be returned. Passing it to iconv_close will cause a SIGSEGV. --- libaegisub/common/charset_conv.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libaegisub/common/charset_conv.cpp b/libaegisub/common/charset_conv.cpp index 498d360b4..7e70d64a3 100644 --- a/libaegisub/common/charset_conv.cpp +++ b/libaegisub/common/charset_conv.cpp @@ -420,7 +420,7 @@ size_t IconvWrapper::DstStrLen(const char* str) { bool IsConversionSupported(const char *src, const char *dst) { iconv_t cd = iconv_open(dst, src); bool supported = cd != iconv_invalid; - iconv_close(cd); + if (supported) iconv_close(cd); return supported; }