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
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel




_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel

Reply via email to