diff --git a/lib/pam_set_data.c b/lib/pam_set_data.c index 4ff3617..253a4bf 100644 --- a/lib/pam_set_data.c +++ b/lib/pam_set_data.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/pam_set_data.c#8 $ + * $P4: //depot/projects/openpam/lib/pam_set_data.c#9 $ */ #include @@ -74,11 +74,13 @@ pam_set_data(pam_handle_t *pamh, if ((dp = malloc(sizeof *dp)) == NULL) return (PAM_BUF_ERR); if ((dp->name = strdup(module_data_name)) == NULL) { - free(data); + free(dp); return (PAM_BUF_ERR); } + dp->data = data; + dp->cleanup = cleanup; dp->next = pamh->module_data; - pamh->module_data = data; + pamh->module_data = dp; return (PAM_SUCCESS); }