tinyalloc icon indicating copy to clipboard operation
tinyalloc copied to clipboard

Correctness fixes and (optional) better C stdlib integration

Open jlindgren90 opened this issue 3 months ago • 2 comments

  • Add early NULL check to ta_free()
  • Add overflow checks in alloc_block() and ta_calloc()
  • Clear full block size to 0's in ta_calloc()
  • Optionally set errno to ENOMEM when out of memory
  • Optionally use memset() to implement memclear()
  • Add ta_getsize() to return allocated block size
  • Add ta_realloc() (optional, requires memcpy())

ta_getsize() and ta_realloc() are based on ideas from #11, but rewritten to fix various issues in that PR.

jlindgren90 avatar Mar 23 '24 19:03 jlindgren90

Updated with some more fixes:

  • Fix behavior of ta_alloc(0) (see #15)
  • Fix additional arithmetic overflows
  • Add fallback memcopy() when not using C stdlib
  • Add early return to ta_realloc() when size is similar

jlindgren90 avatar Mar 25 '24 04:03 jlindgren90

@jlindgren90 Thank you very much for this and the other PR - I will take a look asap, but likely will take a little while for me to review & test this...

postspectacular avatar Mar 27 '24 07:03 postspectacular