diff --git a/pkg/event/event.go b/pkg/event/event.go index 71d6a4cdb..824f9056f 100644 --- a/pkg/event/event.go +++ b/pkg/event/event.go @@ -245,6 +245,9 @@ func NewFromCapture(buf []byte, ver capver.Version) (*Event, error) { func (e *Event) AddMeta(k MetadataKey, v any) { e.mmux.Lock() defer e.mmux.Unlock() + if e.Metadata == nil { + e.Metadata = make(map[MetadataKey]any) + } e.Metadata[k] = v } @@ -263,13 +266,18 @@ func (e *Event) AddOrAppendMetaSlice(k MetadataKey, s string) { func (e *Event) RemoveMeta(k MetadataKey) { e.mmux.Lock() defer e.mmux.Unlock() - delete(e.Metadata, k) + if e.Metadata != nil { + delete(e.Metadata, k) + } } // GetMetaAsString returns the metadata as a string value. func (e *Event) GetMetaAsString(k MetadataKey) string { e.mmux.RLock() defer e.mmux.RUnlock() + if e.Metadata == nil { + return "" + } if v, ok := e.Metadata[k]; ok { if s, ok := v.(string); ok { return s @@ -282,6 +290,9 @@ func (e *Event) GetMetaAsString(k MetadataKey) string { func (e *Event) GetMeta(k MetadataKey) any { e.mmux.RLock() defer e.mmux.RUnlock() + if e.Metadata == nil { + return "" + } return e.Metadata[k] } @@ -289,6 +300,9 @@ func (e *Event) GetMeta(k MetadataKey) any { func (e *Event) ContainsMeta(k MetadataKey) bool { e.mmux.RLock() defer e.mmux.RUnlock() + if e.Metadata == nil { + return false + } return e.Metadata[k] != nil } diff --git a/pkg/event/event_windows.go b/pkg/event/event_windows.go index 97e22e8c7..ba5109cba 100644 --- a/pkg/event/event_windows.go +++ b/pkg/event/event_windows.go @@ -58,18 +58,16 @@ func New(seq uint64, evt *etw.EventRecord) *Event { ) e := &Event{ - Seq: seq, - PID: pid, - Tid: tid, - CPU: cpu, - Type: typ, - Category: typ.Category(), - Name: typ.String(), - Params: make(map[string]*Param), - Description: typ.Description(), - Timestamp: ts, - Metadata: make(map[MetadataKey]any), - Host: hostname.Get(), + Seq: seq, + PID: pid, + Tid: tid, + CPU: cpu, + Type: typ, + Category: typ.Category(), + Name: typ.String(), + Params: make(map[string]*Param), + Timestamp: ts, + Host: hostname.Get(), } e.produceParams(evt)