In mac_get_prison(), mac.m_string points to a user address; the
string is copied in by mac_label_copyin_string(). If an error occurs
before that copyin, we end up freeing a user-controlled pointer.
In mac_set_prison_prepare(), the string is leaked.
While here, make free_copied_label() a bit more robust to bugs in
callers.
Fixes: bd55cbb50c58 ("kern: add a mac.label jail parameter")