[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Autogrow configuration file token array (ITS#1786)



jwm@horde.net wrote:
> 
> I'm just curious: why was the NULL-return checking on ch_realloc() added?
> I deliberately didn't check the return value because ch_realloc() checks
> for a failed BER allocation and asserts and exits if an allocation fails.
> AFAICT, the logging will never be called.

That's because the cn_realloc internal might change in the future, so it
is good practice to use a temporary and check the return value, to
retain
control of the previously alloc'd memory (and dispose of it, in case).
Remember that *realloc in case of failure does not alter the previously
alloced memory.  cargv should be freed to clean up the heap, but since
in this specific case a memory failure while reading the configuration 
would likely result in an abort, I didn't take care of it.

Note that there was also an off by one bug when checking if cargv was
full.

Pierangelo.

-- 
Dr. Pierangelo Masarati               | voice: +39 02 2399 8309
Dip. Ing. Aerospaziale                | fax:   +39 02 2399 8334
Politecnico di Milano                 |
mailto:pierangelo.masarati@polimi.it
via La Masa 34, 20156 Milano, Italy   |
http://www.aero.polimi.it/~masarati