mirror of
https://github.com/google/go-attestation.git
synced 2025-06-06 01:11:33 +00:00
Handle multiple ELAM events (#309)
This commit is contained in:
parent
68deb4ce55
commit
0ccbb50494
@ -678,7 +678,7 @@ func (w *WinEvents) parseUTF16(header microsoftEventHeader, r io.Reader) (string
|
|||||||
return strings.TrimSuffix(string(utf16.Decode(data)), "\x00"), nil
|
return strings.TrimSuffix(string(utf16.Decode(data)), "\x00"), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *WinEvents) readELAMAggregation(rdr *bytes.Reader, header microsoftEventHeader) error {
|
func (w *WinEvents) readELAMAggregation(rdr io.Reader, header microsoftEventHeader) error {
|
||||||
var (
|
var (
|
||||||
r = &io.LimitedReader{R: rdr, N: int64(header.Size)}
|
r = &io.LimitedReader{R: rdr, N: int64(header.Size)}
|
||||||
driverName string
|
driverName string
|
||||||
@ -698,6 +698,11 @@ func (w *WinEvents) readELAMAggregation(rdr *bytes.Reader, header microsoftEvent
|
|||||||
|
|
||||||
var err error
|
var err error
|
||||||
switch h.Type {
|
switch h.Type {
|
||||||
|
case elamAggregation:
|
||||||
|
w.readELAMAggregation(r, h)
|
||||||
|
if r.N == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
case elamKeyname:
|
case elamKeyname:
|
||||||
if driverName != "" {
|
if driverName != "" {
|
||||||
return errors.New("duplicate driver name in ELAM aggregation event")
|
return errors.New("duplicate driver name in ELAM aggregation event")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user