Skip to content

filed: avoid reading from ephemeral buffer#1373

Merged
pstorz merged 5 commits intobareos:masterfrom
arogge:dev/arogge/master/python-fd-plugin-fail
Feb 16, 2023
Merged

filed: avoid reading from ephemeral buffer#1373
pstorz merged 5 commits intobareos:masterfrom
arogge:dev/arogge/master/python-fd-plugin-fail

Conversation

@arogge
Copy link
Member

@arogge arogge commented Feb 8, 2023

In AddFileset() the item pointer can be passed to all kinds of functions like plugin event handlers.
As dir->msg is only short-lived and can be overwritten when communicating with the directory (e.g. emitting a job message), it is safer to copy the buffer before passing it down.

Please check

  • Short description and the purpose of this PR is present above this paragraph
  • Your name is present in the AUTHORS file (optional)

If you have any questions or problems, please give a comment in the PR.

Helpful documentation and best practices

Checklist for the reviewer of the PR (will be processed by the Bareos team)

Make sure you check/merge the PR using devtools/pr-tool to have some simple automated checks run and a proper changelog record added.

General
  • Is the PR title usable as CHANGELOG entry?
  • Purpose of the PR is understood
  • Commit descriptions are understandable and well formatted
  • Check backport line
Source code quality
  • Source code changes are understandable
  • Variable and function names are meaningful
  • Code comments are correct (logically and spelling)
  • Required documentation changes are present and part of the PR
Tests
  • Decision taken that a test is required (if not, then remove this paragraph)
  • The choice of the type of test (unit test or systemtest) is reasonable
  • Testname matches exactly what is being tested
  • On a fail, output of the test leads quickly to the origin of the fault

Copy link
Member

@pstorz pstorz left a comment

Choose a reason for hiding this comment

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

Looks good!

arogge and others added 5 commits February 16, 2023 15:27
In AddFileset() the item pointer can be passed to all kinds of functions
like plugin event handlers.
As dir->msg is only short-lived and can be overwritten when
communicating with the directory (e.g. emitting a job message), it is
safer to copy the buffer before passing it down.
Introduce a new test where a python plugin for the FD emits a job
message in every callback.
you can now just use @BareosPlugin as decorator for your plugin class
instead of re-implementing load_bareos_plugin() yourself.
@pstorz pstorz force-pushed the dev/arogge/master/python-fd-plugin-fail branch from c54514d to 57fc9a3 Compare February 16, 2023 14:27
@pstorz pstorz merged commit 0a171d1 into bareos:master Feb 16, 2023
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.

3 participants