mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-02-17 18:26:36 +00:00
Compare commits
1 Commits
v0.30.0-be
...
v0.30.0-be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6ee794598 |
@@ -440,6 +440,8 @@ func (c *Collector) getServiceConfig(service *mgr.Service) (mgr.Config, error) {
|
|||||||
buf, ok := c.serviceConfigPoolBytes.Get().(*[]byte)
|
buf, ok := c.serviceConfigPoolBytes.Get().(*[]byte)
|
||||||
if !ok || len(*buf) == 0 {
|
if !ok || len(*buf) == 0 {
|
||||||
*buf = make([]byte, bytesNeeded)
|
*buf = make([]byte, bytesNeeded)
|
||||||
|
} else {
|
||||||
|
bytesNeeded = uint32(cap(*buf))
|
||||||
}
|
}
|
||||||
|
|
||||||
for {
|
for {
|
||||||
@@ -450,12 +452,12 @@ func (c *Collector) getServiceConfig(service *mgr.Service) (mgr.Config, error) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if !errors.Is(err, windows.ERROR_INSUFFICIENT_BUFFER) {
|
if !errors.Is(err, windows.ERROR_INSUFFICIENT_BUFFER) && !errors.Is(err, windows.ERROR_MORE_DATA) {
|
||||||
return mgr.Config{}, err
|
return mgr.Config{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if bytesNeeded <= uint32(len(*buf)) {
|
if bytesNeeded <= uint32(len(*buf)) {
|
||||||
return mgr.Config{}, err
|
return mgr.Config{}, fmt.Errorf("win32 reports buffer too small (%d), but buffer is large enough (%d): %w", uint32(cap(*buf)), bytesNeeded, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
*buf = make([]byte, bytesNeeded)
|
*buf = make([]byte, bytesNeeded)
|
||||||
|
|||||||
Reference in New Issue
Block a user