46 Commits
Author SHA1 Message Date
guoling baf36b8695 Refine v2.4.2 hardening fixes 2026-08-20 21:42:19 +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 7224f0aa8f Fix -Wmissing-braces 2026-03-27 16:23:03 +08:00
guoling 58920f50e1 update C++ demo code with MMKVHandler 2026-03-25 12:25:12 +08:00
guoling 1915d892f1 add MMKVConfig 2026-02-05 17:21:53 +08:00
guoling 5c2bce40a3 add reKey testcase on POSIX/Win32 2025-12-01 17:05:10 +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 8b7eb242cb fix readonly crash #1597 2025-10-21 16:45:32 +08:00
guoling 4ad7236e0c dont depend on OS close() to unlock file locks, for Linux/Android flock() is buggy with mmap() 2025-05-07 14:23:41 +08:00
guoling dcfbc83f1c add importFrom() for Python/Golang 2025-04-25 15:23:24 +08:00
guoling a7d70e187a NameSpace works on POSIX 2025-01-07 20:32:36 +08:00
guoling 47d3c0893a add readonly support 2024-09-06 19:44:11 +08:00
guoling 2183260881 fix set empty string/bytes value not working on auto key expire 2024-06-28 15:35:12 +08:00
guoling 6622c083b6 use PRId64 & PRIu64 to format 64 bit integer 2024-06-28 14:54:20 +08:00
guoling 38efa640da fix gcc compile error 2024-06-28 14:46:27 +08:00
guoling 9341e03e19 make C++20 optional 2024-05-07 16:43:18 +08:00
guoling 9e8c30d7cb also support std::span<> 2024-05-06 17:54:17 +08:00
guoling 8b8852479b support encoding string_view 2024-04-29 18:05:44 +08:00
guoling 4f88f3260a update doc about set<!MMKV_SUPPORTED_VALUE_TYPE<T>>() 2024-04-29 15:29:52 +08:00
guoling 346e8f0f40 fix some testcase error 2024-04-29 14:32:37 +08:00
guoling 977a93fa09 almost done add vector<T> encode/decode support 2024-04-29 14:25:18 +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 416ed6ce90 fix linux compile error #1281 2024-04-26 18:26:10 +08:00
guoling e7322d8cee test removeStorage() on POSIX 2023-12-06 13:29:41 +08:00
lishaokai eb9d8c1497 add clearAll with keeping file disk space 2023-10-08 14:07:13 +08:00
lishaokai 347b25feaa redo ftruncate file to its previous size when zeroFillFile fails(disk full) #1180 2023-09-26 17:53:29 +08:00
lishaokai 72b59356a9 compare value before set/encode for the same key 2023-09-12 20:36:10 +08:00
Lishaokai 7649e45d70 in place modification for getString to speed up 2023-09-06 15:59:37 +08:00
lishaokai e0f5321a9a override from beginning of file when dict is empty 2023-08-28 17:42:12 +08:00
Lishaokai c962b68934 Do not append to file when dic.size()==1 && new key in dict 2023-08-23 11:23:58 +08:00
kaitian521 5c88ea604b Merge branch 'dev' into dev 2023-08-11 21:32:26 +08:00
Lishaokai 73f01e5d50 set expected capacity for file length when init #1114 2023-08-11 21:23:12 +08:00
guoling 60cd3ab5d7 tidy 2023-08-10 17:18:04 +08:00
guoling d8574567c0 add testcase on count() & allKeys() for POSIX 2023-08-10 17:17:48 +08:00
guoling 5a60f03196 add auto-key-expiration for golang 2023-05-26 19:32:40 +08:00
guoling 852ea1e6c8 add Expire constant 2023-05-26 17:25:20 +08:00
guoling 16b666fe2c add MMKV::NeverExpire for C++ interface 2023-05-26 15:47:41 +08:00
guoling 3bf119f579 fix compile error on Linux 2023-05-24 19:58:32 +08:00
guoling 927d95fd68 add auto-expiration testcase for POSIX 2023-05-24 19:50:57 +08:00
guoling cc233a6fe3 update POSIX test code about initialize() with logHandler 2022-09-20 11:17:09 +08:00
guoling d0493ec2e3 fix compile error on Linux 2021-09-18 18:32:59 +08:00
guoling 9c0de2dcc9 backup & restore works on POSIX 2021-09-16 20:19:24 +08:00
guoling ec39f75fd6 fix compiler error & sem_open() error on FreeBSD 2021-09-15 16:41:19 +00:00
guoling 93b0b28fd4 opt clearAll() 2020-04-14 16:20:27 +08:00
guoling 425f43f2a6 rename demo.cpp 2020-03-24 14:50:55 +08:00