[bug][udp] size should be passed as a pointer to a variable. Fix no-data return value while we are at it.