BTW, since the modules are public someone could do:
##
list = pdf_alloc (sizeof(pdf_list_t));
pdf_list_create (l_comp, l_disp, 0, list);
###
If the user don't check for the NULL pointer after calling alloc(), and
pdf_list_create() either a segfault would ocurr and the user will say that
its
the library fault.
The documentation of `pdf_alloc' says:
Returns
A pointer to the newly allocated memory.
If there is not enough available memory to satisfy the petition
then NULL is returned.
So it is the responsability of the caller (in this case the client
using the library) to check for NULL.