daan
|
ca13e9cd59
|
better instruction scheduling for alloc
|
2020-10-15 19:46:33 -07:00 |
|
daan
|
6279835976
|
fix unused parameter warning
|
2020-10-11 13:22:14 -07:00 |
|
daan
|
7114d5424a
|
fix statistics to include padding correctly (issue #301)
|
2020-10-11 13:14:43 -07:00 |
|
daan
|
44d030ba9d
|
fuse used decrement with test for slightly better codegen
|
2020-09-24 16:28:25 -07:00 |
|
daan
|
900c97664a
|
merge from dev-atomic
|
2020-09-03 09:47:01 -07:00 |
|
daan
|
b4825372ab
|
small compilation warning fixes (extra semicolon etc)
|
2020-08-29 19:30:38 -07:00 |
|
daan
|
ef8e5d18a6
|
replace atomics with C11/C++ atomics with explicit memory order; passes tsan. Issue #130
|
2020-07-26 18:01:33 -07:00 |
|
daan
|
a468430772
|
strengthen memory order of bit operations; insert memory fences
|
2020-07-26 14:19:30 -07:00 |
|
daan
|
09ade02429
|
bring inline with C11 atomics; no volatile and cas order of expected/desired
|
2020-07-25 22:52:27 -07:00 |
|
daan
|
8769082d63
|
add pointer validity check in debug mode for mi_usable_size/mi_realloc/mi_expand. Issue #269
|
2020-07-20 14:33:03 -07:00 |
|
Haneef Mubarak
|
429025634e
|
resolve #201 with a platform-selective REP MOVSB implementation
|
2020-05-26 16:04:28 -07:00 |
|
daan
|
e31298bdc3
|
fix compiler warning in secure mode
|
2020-04-20 18:04:09 -07:00 |
|
daan
|
1116c0df2e
|
fix strnlen do not search beyond n characters, issue #228
|
2020-04-14 17:42:30 -07:00 |
|
daan
|
69a0846478
|
add MI_PADDING flag to cmake to supress use of padding in debug mode
|
2020-04-07 10:01:18 -07:00 |
|
Daan
|
1ece3ff6aa
|
Merge pull request #220 from cormacrelf/usable_size
Don't call mi_page_usable_size_of with an aligned pointer
|
2020-04-06 08:05:34 -07:00 |
|
Cormac Relf
|
0047b271f7
|
Call mi_page_usable_size_of with unaligned block rather than start of aligned memory
|
2020-04-06 22:50:21 +10:00 |
|
daan
|
ec61224db0
|
fix padding issue with zero sized allocation (issue #209)
|
2020-02-18 20:05:30 -08:00 |
|
daan
|
baf08e8d54
|
fix size check on overflow when padding is enabled in debug mode
|
2020-02-17 09:59:34 -08:00 |
|
daan
|
f42b8526d0
|
fix wrong __declspec(restrict) and __attribute__((malloc)) attributes on reallocation functions
|
2020-02-13 10:36:39 -08:00 |
|
daan
|
f3c47c7c91
|
improved malloc zone handling on macOSX (not working yet)
|
2020-02-02 21:03:09 -08:00 |
|
daan
|
60cfc623be
|
fix zero initialization of blocks under 8 bytes when padding check is active
|
2020-02-01 14:29:12 -08:00 |
|
daan
|
edff9d4fbb
|
merge from dev-win (padding)
|
2020-02-01 12:32:59 -08:00 |
|
daan
|
aa68b8cbc7
|
improve encoding of padding canary and buffer overflow detection
|
2020-02-01 12:16:37 -08:00 |
|
daan
|
40f1e1e07b
|
byte-precise heap block overflow checking with encoded padding
|
2020-01-31 23:39:51 -08:00 |
|
daan
|
68112a2751
|
better padding implementation, more precise statistics
|
2020-01-31 20:34:24 -08:00 |
|
daan
|
4531367de2
|
fix padding check for aligned allocation; improve perf for small aligned allocations
|
2020-01-31 13:20:02 -08:00 |
|
daan
|
a7c69ccbea
|
fix stat accounting of segments with huge blocks
|
2020-01-30 06:25:42 -08:00 |
|
daan
|
7ff3ec2bf7
|
use EFAULT for buffer overflow and call abort in debug mode (as well as secure mode)
|
2020-01-29 17:25:40 -08:00 |
|
daan
|
5d212d688f
|
add MI_PADDING build option to add padding to each block to detect heap block overflows
|
2020-01-29 17:10:57 -08:00 |
|
daan
|
0316859e06
|
improve codegen for mi_free
|
2020-01-23 10:03:03 -08:00 |
|
daan
|
e3b16fe4ef
|
reduce type casts in atomic operations
|
2020-01-22 19:44:54 -08:00 |
|
daan
|
3957b2fd28
|
add mi_new_realloc(n) to support C++ style reallocation that raises std::bad_alloc on out-of-memory
|
2020-01-20 15:41:56 -08:00 |
|
daan
|
e8d7c80c74
|
fix build warnings on linux
|
2020-01-19 17:33:36 -08:00 |
|
daan
|
41e717c2e0
|
fix assertion in mi_block_zero_init (issue #194)
|
2020-01-18 20:30:12 -08:00 |
|
daan
|
dc58388968
|
Add ability to register custom error function called on various error conditions; including ENOMEM
|
2020-01-17 19:59:55 -08:00 |
|
daan
|
6dd636d82d
|
improve STL allocator using mi_new_n and removing unused parameter names; follow up from pr #193 and #188
|
2020-01-17 15:41:52 -08:00 |
|
daan
|
7a9502973d
|
rearrange STL allocator code: remove pragma, ifdef for C++11
|
2020-01-16 15:57:11 -08:00 |
|
daan
|
4e91eab8fc
|
specialize mi_mallocn for count=1
|
2020-01-16 14:12:37 -08:00 |
|
daan
|
0099707af9
|
use delayed free for all pages; reduce size of the page structure for improved address calculation
|
2020-01-15 17:19:01 -08:00 |
|
daan
|
d596f08569
|
fix thread_free read in assertion
|
2020-01-03 22:06:27 -08:00 |
|
daan
|
9629a0190f
|
fix eager commit on large pages (issue #182)
|
2020-01-02 17:25:00 -08:00 |
|
daan
|
fc3e537bd4
|
improve double free detection with faster same page check
|
2019-12-28 15:28:13 -08:00 |
|
daan
|
e3391d9a53
|
stronger encoding of free lists using two keys per page
|
2019-12-28 00:57:42 -08:00 |
|
daan
|
74dbfc30be
|
improved security by encoding NULL values; double free mitigation on by default; more precise free list corruption detection
|
2019-11-21 15:21:23 -08:00 |
|
Daan Leijen
|
4d4a2885f5
|
use atomic read/write on the page->heap field where concurrent interaction is possible
|
2019-11-20 13:19:17 -08:00 |
|
daan
|
b052d3b731
|
enable double free and heap corruption detection in debug mode
|
2019-10-28 15:54:33 -07:00 |
|
daan
|
28d4ec4c5a
|
fix statistics accounting of huge pages
|
2019-10-28 13:14:14 -07:00 |
|
daan
|
25246070ae
|
fix double free check in secure = 4 mode; inline _mi_ptr_cookie
|
2019-10-19 08:34:18 -07:00 |
|
daan
|
2affdbbd2e
|
stronger secure mode when defining MI_SECURE=4: checks for double free, corrupted free list, and invalid pointer frees. Performance is impacted but not too much -- more perf testing is needed
|
2019-10-18 18:11:04 -07:00 |
|
daan
|
5de851a84d
|
update page_flags to have more portable definition
|
2019-10-17 16:48:16 -07:00 |
|