[Devel] memory allocation question
Klaus Darilion
klaus.mailinglists at pernau.at
Fri Nov 18 15:11:37 CET 2005
Ok, I've got it.
thanks
klaus
Norman Brandinger wrote:
> Hi Klaus,
>
> A quick review of the code shows that the deallocation of cmd_line is
> happening for all cases except where the allocation failed.
>
> The confusion is probably caused by the use of "goto" statements. I am
> against the use of "goto" in any programming if at all possible. They
> ruin the entire idea of "structured programming". This topic has been
> argued since the stone ages :)
>
> In the case where no error condition exists, the line labeled error02
> will still be executed and execution will continue to the line labeled
> error01 (which then performs the deallocation). The only way to avoid
> the deallocation is to "goto" error00 directly and this only happens if
> the original memory allocation failed.
>
> If I've missed something, I hope that someone will point it out.
>
> Regards,
> Norm
>
> Klaus Darilion wrote:
>
>> Hi!
>>
>> Probably this is a newbee question.
>>
>> I'm studying some source code and wonder about freeing allocated memory:
>> file modules/exec/exec.c
>>
>> line 109: cmd_line=pkg_malloc(cmd_len);
>>
>> this is freed in line 189:
>> pkg_free(cmd_line);
>> but only if error01 happens.
>>
>> Shouldn't this be freed in all cases?
>>
>> regards
>> klaus
>>
>> _______________________________________________
>> Devel mailing list
>> Devel at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/devel
>>
>>
>
>
More information about the Devel
mailing list