Discussion:
dpid patches
p***@public.gmane.org
2012-12-18 15:26:37 UTC
Permalink
First patch is for removing expired TODO item, just resending it.

Second patch is new, for dpid.c.

Function fill_services_list has a bug: on line 463 there is a check
*services_list != NULL. If it is true, then -1 is returned, but
dpidrc_stream is not closed.

Error message on line 456 says "popen failed", should be "fopen
failed".

fill_services_list checks for availability of user_dpidir and
sys_dpidir, but after line 449 these variables are not used. They are
just dFreed in the end. Looks like code was just copypasted from
register_all.

fill_services_list is only called from main.c:248 and dpid.c:807 of
dpid.c. register_all is called from main.c:235 and dpid.c:806. So
fill_services_list is always called after register_all and doing the
same check is useless.

On line 503 there is a conversion of services_alpha_comp to type
(dCompareFunc). I changed the function services_alpha_comp to the
usual style of writing comparison functions so no conversion is
required. In the current state it is undefined behaviour. [1]

[1]
http://stackoverflow.com/questions/559581/casting-a-function-pointer-to-another-type
Loading...