Heartbleed aside, why the `calloc()` instead of the more traditional `malloc()`?  Besides, you must *always* check the return value of the `*alloc()` functions.