Yep, that's a bug alright.  Nice catch.  I wonder if this could explain #216?

Might be more explicit to set ````uavo_multi->instance0->next = NULL```` and then ````memset(&uavo_multi->instance0.instance, 0, num_bytes)````.  That seems more clear than zero'ing out the ````next```` pointer as a side-effect of the memset.