Here are a few more unchecked memory allocations. I think the first one is definitely a bug. The others are all calls to of the form xxx = eif_realloc (xxx, SOME_SIZE); If `xxx' was not NULL before the call and `eif_realloc' returns NULL, we have a memory leak. If you're going to use `eif_realloc' for this sort of thing, it seems to me that a better pattern (used elsewhere in other runtime code) is my_local = eif_realloc(xxx, SOME_SIZE); if (!my_local) { enomem(); } xxx = my_local; If `xxx' was already guaranteed to be NULL before the call, you should use `eif_malloc' instead to avoid confusion.