I was wondering, isn't it true that in code like this, allocated_mem = malloc(...); ... if (error_condition) err(...); ... free(allocated_mem);
the 'allocated_mem' will get lost into space if 'error_condition' occurs ? If so, the 'bio_createraid', and the 'bio_parse_devlist' function which is called by 'bio_createraid', might leak memory this way on several occasions.
