Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | The BSD qsort() performs tail recursion elimination on the second | millert | 2017-05-17 | 1 | -10/+25 | |
| | | | | | | | | side of the array being partitioned to save on stack space. Greater savings can be gained by choosing recursion for the smaller side of the partition and eliminating recursion for the larger side. This also results in a small but measurable performance gain. OK otto@ schwarze@ | |||||
* | Typo: freezeo -> freezero | tb | 2017-05-15 | 1 | -3/+3 | |
| | | | | From "fenderq" on freenode via tj@ | |||||
* | - fix bug wrt posix_memalign(3) of blocks between half a page and a page | otto | 2017-05-13 | 2 | -8/+18 | |
| | | | | | - document posix_memalign() does not play nice with reacallocarray(3) and freezero(3) | |||||
* | Rearrange text a bit to make it clear what "discarded" means; ok jmc@ deraadt@ | otto | 2017-04-23 | 1 | -8/+13 | |
| | ||||||
* | For small allocations (chunk) freezero only validates the given | otto | 2017-04-22 | 1 | -5/+10 | |
| | | | | | | | | size if canaries are enabled. In that case we have the exact requested size of the allocation. But we can at least check the given size against the chunk size if C is not enabled. Plus add some braces so my brain doesn't have to scan for dangling else problems when I see this code. | |||||
* | don't forget to fill in canary bytes for posix_memalign(3); reported by | otto | 2017-04-18 | 1 | -1/+4 | |
| | | | | and ok jeremy@ | |||||
* | consictently use .Dv NULL and a few other tweaks; ok schwarze@ | otto | 2017-04-17 | 1 | -20/+17 | |
| | ||||||
* | whitespace fixes | otto | 2017-04-17 | 1 | -14/+14 | |
| | ||||||
* | allow clearing less than allocated and document freezero(3) better | otto | 2017-04-13 | 2 | -13/+26 | |
| | ||||||
* | tweak previous; | jmc | 2017-04-10 | 1 | -4/+4 | |
| | ||||||
* | Introducing freezero(3) a version of free that guarantees the process | otto | 2017-04-10 | 2 | -36/+130 | |
| | | | | | | no longer has access to the content of a memmory object. It does this by either clearing (if the object memory remains cached) or by calling munmap(2). ok millert@, deraadt@, guenther@ | |||||
* | Consistentcy between nmembers and size order. From Christopher Hettrick; | otto | 2017-04-06 | 1 | -8/+8 | |
| | | | | ok deraadt@ | |||||
* | first print size in meta-data then supplied arg size when an inconsistency is | otto | 2017-04-06 | 1 | -3/+3 | |
| | | | | detected wrt recallocarray() | |||||
* | rephrase more enumerations of functions | otto | 2017-03-29 | 1 | -13/+10 | |
| | ||||||
* | small cleanup & optimization; ok deraadt@ millert@ | otto | 2017-03-28 | 1 | -2/+5 | |
| | ||||||
* | Stop enumeration all allocation functions, just say "allocation functions"libressl-v2.5.2 | otto | 2017-03-26 | 1 | -32/+13 | |
| | | | | ok jmc@ deraadt@ | |||||
* | add a helper function to print all pools #ifdef MALLOC_STATS | otto | 2017-03-24 | 1 | -1/+16 | |
| | | | | from David CARLIER | |||||
* | document new recallocarray diagnostic; zap a few diagnostics that should | otto | 2017-03-24 | 1 | -8/+9 | |
| | | | | never occur | |||||
* | move recallocarray to malloc.c and | otto | 2017-03-24 | 2 | -19/+207 | |
| | | | | | | | - use internal meta-data to do more consistency checking (especially with option C) - use cheap free if possible ok deraadt@ | |||||
* | remove unneccessary macro; | jmc | 2017-03-17 | 1 | -2/+2 | |
| | ||||||
* | Strengthen description of recallocarray(3) behaviour, hoping that readers | deraadt | 2017-03-17 | 1 | -5/+10 | |
| | | | | | make the behaviour -> use case connection. help from jmc and jsing | |||||
* | Some tweaks from jmc@ and describe better what recallocarray does; | otto | 2017-03-07 | 1 | -7/+16 | |
| | | | | help and ok from tom@ and deraadt@ | |||||
* | Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3) | otto | 2017-03-06 | 3 | -7/+147 | |
| | | | | | with the added feature that released memory is cleared. Much input from various developers. ok deraadt@ tom@ | |||||
* | Add a NULL test to wrterror() to avoid a NULL deref when called from a | jsg | 2017-02-15 | 1 | -2/+2 | |
| | | | | | | free() error path. ok otto@ | |||||
* | malloc does not *need* to return page-aligned objects for size >= | otto | 2017-02-12 | 1 | -5/+2 | |
| | | | | | a page. This is not required by any standard and other malloc implementation do not document (or implement) this. ok deraadt@ | |||||
* | fix a comment and rm some dead code as a result of the previous diff | otto | 2017-02-02 | 1 | -8/+5 | |
| | ||||||
* | Let realloc handle and produce moved pointers for allocations betweenlibressl-v2.5.1 | otto | 2017-02-01 | 1 | -20/+37 | |
| | | | | half a page and a page. ok jmatthew@ tb@ | |||||
* | 1. When shrinking a chunk allocation, compare the size of the current | otto | 2017-01-21 | 1 | -46/+87 | |
| | | | | | | | | | | allocation to the size of the new allocation (instead of the requested size). 2. Previously realloc takes the easy way and always reallocates if C is active. This commit fixes by carefully updating the recorded requested size in all cases, and writing the canary bytes in the proper location after reallocating. 3. Introduce defines to test if MALLOC_MOVE should be done and to compute the new value. | |||||
* | Remove unnecessary casts of 'a' to char * since 'a' is already char *. | millert | 2017-01-04 | 1 | -10/+10 | |
| | | | | | This is a remnant from the original 4.4BSD code that had 'a' as void * in the function args. No binary change. OK bluhm@ | |||||
* | MALLOC_STATS tweaks, by default not compiled in | otto | 2016-11-04 | 1 | -13/+29 | |
| | ||||||
* | small tweak to also check canaries if F is in effect | otto | 2016-11-03 | 1 | -3/+5 | |
| | ||||||
* | remove some old option letters and also make P non-settable. It has | otto | 2016-10-31 | 1 | -24/+6 | |
| | | | | | been the default for ages, and I see no valid reason to be able to disable it. ok natano@ | |||||
* | Pages in the malloc cache are either reused quickly or unmapped | otto | 2016-10-28 | 1 | -14/+1 | |
| | | | | | | quickly. In both cases it does not make sense to set hints on them. So remove that option, which is just a remainder of old times when malloc used to hold on to pages. ok stefan@ | |||||
* | $OpenBSD$ | tb | 2016-10-22 | 3 | -0/+3 | |
| | ||||||
* | - fix MALLOC_STATS compile | otto | 2016-10-22 | 1 | -3/+6 | |
| | | | | - redundant cast is redundant | |||||
* | fix some void * arithmetic by casting | otto | 2016-10-21 | 1 | -4/+4 | |
| | ||||||
* | and recommit with fixed GC | otto | 2016-10-21 | 1 | -103/+112 | |
| | ||||||
* | backout for now; flag combination GC is not ok | otto | 2016-10-20 | 1 | -110/+103 | |
| | ||||||
* | avoid sentence splicing; | jmc | 2016-10-20 | 1 | -2/+2 | |
| | ||||||
* | canary corruption message changed a bit | otto | 2016-10-20 | 1 | -5/+5 | |
| | ||||||
* | Also place canaries in > page sized objects (if C is in effect); ok tb@ | otto | 2016-10-20 | 1 | -103/+110 | |
| | ||||||
* | Wrap _malloc_init() so internal calls go directly | guenther | 2016-10-15 | 1 | -1/+2 | |
| | | | | | prodded by otto@ ok kettenis@ otto@ | |||||
* | 0xd0 -> 0xdb; ok deraadt@ millert@ tedu@ | otto | 2016-10-14 | 1 | -3/+3 | |
| | ||||||
* | optimize canary code a bit by storing offset of sizes table instead of | otto | 2016-10-12 | 1 | -5/+7 | |
| | | | | recomputing it all the time | |||||
* | make clear the length printed is the requested length | otto | 2016-10-08 | 1 | -3/+3 | |
| | ||||||
* | grammar fix previous; | jmc | 2016-10-07 | 1 | -2/+2 | |
| | ||||||
* | document "chunk canary corrupted" error | otto | 2016-10-07 | 1 | -2/+7 | |
| | ||||||
* | stray tab | otto | 2016-10-07 | 1 | -2/+2 | |
| | ||||||
* | Beter implementation of chunk canaries: store size in chunk meta data | otto | 2016-10-07 | 1 | -61/+63 | |
| | | | | instead of chunk itself; does not change actual allocated size; ok tedu@ | |||||
* | Delete casts to off_t and size_t that are implied by assignments | guenther | 2016-09-21 | 2 | -9/+9 | |
| | | | | | | | or prototypes. Ditto for some of the char* and void* casts too. verified no change to instructions on ILP32 (i386) and LP64 (amd64) ok natano@ abluhm@ deraadt@ millert@ |