Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix a possible nil-dereference crash (#478)
* Test for a panic inside global internal meter instrument's Unbind * Fix a possible nil-dereference crash There is a nil dereference crash if we perform some operations in certain order: - get a global meter - create an instrument - bind it - set the delegate - unbind the instrument - call some recording function on the not-really-bound-anymore instrument Unbind will run the no op run-once initialization routine, so the follow-up RecordOne call will not run it's initialization routine. Which RecordOne's initialization routine being skipped, the delegate to bounded instrument is not set, but the code is still trying to get a pointer to it and then unconditionally dereference it. Add an extra check for a nil pointer - if this is true, then Unbind was first and RecordOne should effectively be a no op. Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
- Loading branch information