Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix a crash under Windows when fetching process information #12833

Merged
merged 5 commits into from
Jul 9, 2019

Conversation

adriansr
Copy link
Contributor

@adriansr adriansr commented Jul 9, 2019

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

  • Metricbeat's system/process metricset.

It is also used by:

  • Auditbeat's system/process.
  • Packetbeat's process monitor (disabled by default).
  • The add_process_metadata processor.
  • Beats monitoring.
  • libbeat/cmd/instance/beat.go

Fixes #12826

@adriansr adriansr added bug libbeat needs_backport PR is waiting to be backported to other branches. labels Jul 9, 2019
Copy link
Member

@andrewkroh andrewkroh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, you probably need a make notice.

@adriansr
Copy link
Contributor Author

adriansr commented Jul 9, 2019

CI failure unrelated

@adriansr adriansr merged commit 2b6763d into elastic:master Jul 9, 2019
adriansr added a commit to adriansr/beats that referenced this pull request Jul 9, 2019
…12833)

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

Metricbeat's system/process metricset.
It is also used by:

Auditbeat's system/process.
Packetbeat's process monitor (disabled by default).
The add_process_metadata processor.
Beats monitoring.
libbeat/cmd/instance/beat.go

Fixes elastic#12826

(cherry picked from commit 2b6763d)
@adriansr adriansr added v7.3.0 and removed needs_backport PR is waiting to be backported to other branches. labels Jul 9, 2019
adriansr added a commit to adriansr/beats that referenced this pull request Jul 9, 2019
…12833)

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

Metricbeat's system/process metricset.
It is also used by:

Auditbeat's system/process.
Packetbeat's process monitor (disabled by default).
The add_process_metadata processor.
Beats monitoring.
libbeat/cmd/instance/beat.go

Fixes elastic#12826

(cherry picked from commit 2b6763d)
@adriansr adriansr added the v7.2.1 label Jul 9, 2019
adriansr added a commit that referenced this pull request Jul 9, 2019
…12837)

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

Metricbeat's system/process metricset.
It is also used by:

Auditbeat's system/process.
Packetbeat's process monitor (disabled by default).
The add_process_metadata processor.
Beats monitoring.
libbeat/cmd/instance/beat.go

Fixes #12826

(cherry picked from commit 2b6763d)
adriansr added a commit that referenced this pull request Jul 9, 2019
…ocess information (#12835)

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

Metricbeat's system/process metricset.
It is also used by:

Auditbeat's system/process.
Packetbeat's process monitor (disabled by default).
The add_process_metadata processor.
Beats monitoring.
libbeat/cmd/instance/beat.go

Fixes #12826

(cherry picked from commit 2b6763d)
leweafan pushed a commit to leweafan/beats that referenced this pull request Apr 28, 2023
…12833) (elastic#12837)

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

Metricbeat's system/process metricset.
It is also used by:

Auditbeat's system/process.
Packetbeat's process monitor (disabled by default).
The add_process_metadata processor.
Beats monitoring.
libbeat/cmd/instance/beat.go

Fixes elastic#12826

(cherry picked from commit 3374b3a)
leweafan pushed a commit to leweafan/beats that referenced this pull request Apr 28, 2023
…hing process information (elastic#12835)

This updates gosigar to v0.10.4 and go-sysinfo to v1.0.2.

Both releases fix a similar bug under Windows when fetching the command-line of a running process:
The offending code expected the command-line strings read from a target process to contain a null character as a terminator. However, this is not always true, and sometimes a terminator needs to be added. Most of the time the missing terminator wasn't an issue due to the runtime allocating extra space for the string, but in some extreme cases it caused a crash.

This bug manifested in:

Metricbeat's system/process metricset.
It is also used by:

Auditbeat's system/process.
Packetbeat's process monitor (disabled by default).
The add_process_metadata processor.
Beats monitoring.
libbeat/cmd/instance/beat.go

Fixes elastic#12826

(cherry picked from commit 3374b3a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Periodic system/process metricset crashes under Windows
2 participants