Hi,
Over in Telegraf, we had a report in influxdata/telegraf#15200 of a panic with gosmi. Specifically, it looks like a nil value causes the panic when trying to type assert.
Code
https://github.com/sleepinggenius2/gosmi/blob/v0.4.4/models/format_bits.go#L31
Panic
panic: interface conversion: interface {} is nil, not []uint8
goroutine 642 [running]:
github.com/sleepinggenius2/gosmi/models.GetEnumBitsFormatted({0x0?, 0x0?}, 0x90?, 0xc00221da20?)
/home/builds/go/pkg/mod/github.com/sleepinggenius2/gosmi@v0.4.4/models/format_bits.go:31 +0x598
github.com/sleepinggenius2/gosmi/models.Type.FormatValue({0xb, 0x1, {0x0, 0x0}, 0xc002112340, {0x0, 0x0}, {0x22a2cb2, 0x4}, {0x3939620, ...}, ...}, ...)
/home/builds/go/pkg/mod/github.com/sleepinggenius2/gosmi@v0.4.4/models/format.go:163 +0x23c
github.com/sleepinggenius2/gosmi/models.Node.FormatValue(...)
/home/builds/go/pkg/mod/github.com/sleepinggenius2/gosmi@v0.4.4/models/format.go:127
github.com/influxdata/telegraf/plugins/inputs/snmp.(*gosmiTranslator).SnmpFormatEnum(0xc0004c6037?, {0xc002143230?, 0x265ed10?}, {0x0, 0x0}, 0x0)
/data/agent/workspace/MSE-aragorn-publish/build/telegraf/plugins/inputs/snmp/gosmi.go:139 +0x338
Expected Behavior
Ideally, a user should not see a panic if at all possible. A type assertion should safely check the value to avoid the runtime panic.
Hi,
Over in Telegraf, we had a report in influxdata/telegraf#15200 of a panic with gosmi. Specifically, it looks like a nil value causes the panic when trying to type assert.
Code
https://github.com/sleepinggenius2/gosmi/blob/v0.4.4/models/format_bits.go#L31
Panic
Expected Behavior
Ideally, a user should not see a panic if at all possible. A type assertion should safely check the value to avoid the runtime panic.