Skip to content

Commit

Permalink
Fix unlikely pointer error in get_in_tkt.c
Browse files Browse the repository at this point in the history
In add_padata(), reset the caller's pointer and ensure the list is
terminated as soon as realloc() succeeds; otherwise, the old pointer
could be left behind if a later allocation fails.

ticket: 8413 (new)
target_version: 1.14-next
target_version: 1.13-next
tags: pullup
  • Loading branch information
greghudson committed Jun 1, 2016
1 parent 8b5259b commit 24452cd
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/lib/krb5/krb/get_in_tkt.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,10 +344,11 @@ add_padata(krb5_pa_data ***padptr, krb5_preauthtype pa_type,
if (pad)
for (size=0; pad[size]; size++);
pad = realloc(pad, sizeof(*pad)*(size+2));

if (pad == NULL)
return ENOMEM;
pad[size+1] = NULL;
*padptr = pad;
pad[size] = pad[size + 1] = NULL;

pa = malloc(sizeof(krb5_pa_data));
if (pa == NULL)
return ENOMEM;
Expand All @@ -363,7 +364,6 @@ add_padata(krb5_pa_data ***padptr, krb5_preauthtype pa_type,
}
pa->pa_type = pa_type;
pad[size] = pa;
*padptr = pad;
return 0;
}

Expand Down

0 comments on commit 24452cd

Please sign in to comment.