97 Commits

Author SHA1 Message Date
guoling 5892e0ff3b fix expireDuration overflow bug #1665 2026-06-02 19:06:09 +08:00
guoling de70a23783 Fix oversized key corrupting data due to uint16_t overflow in KeyValueHolder
Keys longer than 65531 bytes cause keySize and computedKVSize (both uint16_t)
to wrap around, silently corrupting the internal offset so that subsequent reads
return garbage. Reject keys exceeding the safe threshold (UINT16_MAX - 4) at
all write and parse entry points.
2026-04-08 16:08:59 +08:00
guoling 6a55c88536 enhance random iv 2026-03-25 12:46:48 +08:00
guoling f4cb2357bc drop oldstyle actual size downgrade support 2026-03-03 20:10:30 +08:00
guoling fec30f74c7 robust check on encryption mode #1642 2026-02-24 15:21:51 +08:00
guoling 1915d892f1 add MMKVConfig 2026-02-05 17:21:53 +08:00
Guo Ling f6e6fbc5e0 convert log message to utf-8 by (changing src in utf-8) for win32 client 2026-01-30 18:04:08 +08:00
guoling 96390cc85a verify all page in win32 for corrupted file 2026-01-29 15:27:48 +08:00
guoling e439582ab7 protect from m_file not valid for isDiskOfMMAPFileCorrupted() 2025-12-25 12:06:49 +08:00
hossinasaadi 6acdef76d0 fix 2025-12-22 17:56:48 +03:30
hossinasaadi e8dba7762f fix public interface 2025-12-22 15:23:58 +03:30
hossinasaadi df721fa6cd add onMMKVContentLoadSuccessfully to content notify handler 2025-12-21 17:39:57 +03:30
guoling c708914c04 protect from delete file failure on corrupted files 2025-12-18 19:33:30 +08:00
guoling d99404baeb reduce absolutePath() call as much as possible 2025-12-16 18:32:19 +08:00
guoling 8cb70d1123 add aes256 option on mmkv creation 2025-11-27 16:02:49 +08:00
guoling 3163817697 fix single key override bug on upgrading from a v1.1.x version #1605 2025-11-24 16:07:16 +08:00
guoling 09c27e6d7b protect from file size change on multi-process load #1599 2025-11-24 11:54:11 +08:00
guoling 8b7eb242cb fix readonly crash #1597 2025-10-21 16:45:32 +08:00
guoling 2ba8ff9bc0 support AES 256 2025-09-24 11:55:35 +08:00
guoling 9ac9c642ac add importFrom() for iOS 2025-04-25 11:48:31 +08:00
guoling 0f745c609d test checkExist() on Win32 2025-04-22 20:53:38 +08:00
guoling 922e08e74a fix crcPath empty bug 2025-04-22 17:04:04 +08:00
guoling 85e64c9422 add checkExist() for Flutter 2025-04-22 16:39:05 +08:00
guoling c2dbd276c2 add checkExist() #1346 2025-04-22 15:15:23 +08:00
guoling c00c3b6006 improve multi-process read robustness by checking actualSize 2025-04-21 14:48:16 +08:00
guoling 8a024dfc3d improve multi-process read efficiency 2025-04-21 14:43:27 +08:00
guoling f23e95c652 support using MMKVCore at Apple platform in pure C++ code 2025-02-14 19:43:48 +08:00
guoling ead3e4668f add experimental disk corrupt detech on Android/Linux 2025-01-15 11:55:21 +08:00
guoling aad8e484c0 add iOS/macOS/Win32 disk failure protection 2025-01-13 18:11:22 +08:00
guoling d26fa06b2e remove guardForBackgroundWriting() for we are iOS 13+ 2025-01-06 15:58:04 +08:00
guoling d069d7c56a NameSpace for Android complete 2025-01-06 15:58:03 +08:00
guoling 147f89dba7 migrate legacy mmap ID to normal ID 2025-01-06 15:58:01 +08:00
guoling 89b56922e8 1. NameSpace almost work on iOS
2. Upgrade to iOS 13, watchOS 6
3. Dont mkPath() on ReadOnly mode
2025-01-06 15:54:38 +08:00
guoling 0bd466efe3 support correct filename on custom root path 2024-12-24 19:29:07 +08:00
guoling ba4f343de5 protect from invalid value size of auto-key-expire mmkv #1440 2024-11-28 22:31:05 +08:00
guoling 8b8188d536 add log & error & content change callback for flutter & ArtTS 2024-09-12 18:50:33 +08:00
guoling 6688793f59 check getMMKVWithID result and throw exception #1399 2024-09-09 20:43:06 +08:00
guoling 47d3c0893a add readonly support 2024-09-06 19:44:11 +08:00
guoling dcdd4e6d1e use random size holder to make encryption resilient from brute force cracking 2024-07-17 11:28:17 +08:00
guoling 912f8a4ccf fix override bug on encrypted mmkv #1351 2024-07-16 18:38:38 +08:00
guoling 01790453fe use std::string_view to represent key type 2024-05-11 14:44:17 +08:00
guoling 346e8f0f40 fix some testcase error 2024-04-29 14:32:37 +08:00
guoling b990c2bd14 prepare to add vector<T> encode/decode support 2024-04-28 18:49:34 +08:00
guoling db61c3ea60 fix typo 2024-04-28 15:43:13 +08:00
guoling 4cb1891c36 support x64 in windows #1254 2024-04-19 15:29:51 +08:00
MrWander 8aec6da927 bugfix: trim sigbus 2024-03-08 14:00:13 +08:00
guoling d7310af125 include <unistd.h> for unlink() #1233 2024-02-05 19:58:21 +08:00
guoling 3561cee217 rename macro with MMKV prefix to avoid conflict #1215 2023-12-29 11:13:47 +08:00
guoling 962cf09f9c test removeStorage() on Win32 2023-12-06 16:06:00 +08:00
guoling ee1e77be8e test removeStorage() on Android 2023-12-06 14:31:21 +08:00