diff --git a/agent/ChangeLog b/agent/ChangeLog index 25034d89c..139360d77 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,10 @@ +2009-12-02 Werner Koch + + * trustlist.c (read_trustfiles): Store the pointer returned from + shrinking the memory and not the orginal one. Fixes bug#1163. + Reported by TAKAHASHI Tamotsu. Also return correct error after + memory failure. + 2009-11-27 Marcus Brinkmann * command.c (start_command_handler): Do not call diff --git a/agent/trustlist.c b/agent/trustlist.c index a0b23b51f..be5406b05 100644 --- a/agent/trustlist.c +++ b/agent/trustlist.c @@ -361,13 +361,14 @@ read_trustfiles (void) ti = xtryrealloc (table, (tableidx?tableidx:1) * sizeof *table); if (!ti) { + err = gpg_error_from_syserror (); xfree (table); return err; } lock_trusttable (); xfree (trusttable); - trusttable = table; + trusttable = ti; trusttablesize = tableidx; unlock_trusttable (); return 0;