While it is unfortunate they don't use forward-declared structs instead of void pointers, that only means that potential type checking that could otherwise be done by the compiler does not happen, the use of void pointers in and of itself is not a bug, it just can make it more likely that code using the library won't know about bugs until too late.