no cast for malloc, except in uthash