int user_free_master(void **user)
The user frees all the data structures within *user, and also free *user itself. This can be done using the built-in macro FREE that checks the existence of a pointer before freeing it.