Uh oh!
There was an error while loading. Please reload this page.
Do not block on request input - #31
Conversation
There was a problem hiding this comment.
Code Review
This pull request refactors the Agent class to use a DBus object, introduces asynchronous input request handling via detached threads, and improves memory management and locking in the Manager class. Feedback identifies a critical use-after-free vulnerability in dispatch_method_call where a string is accessed after its parent variant is unreferenced, and highlights the risks of using detached threads without ensuring the lifetime of captured objects.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
🧩 Build Artifacts ✅ The following build artifacts were produced: |
Store a pointer to dbus to finish the request input in the gdbus managed context. Spawn a thread that execute the request input callback so the user can block as long as he wants for user input. Signed-off-by: Eduardo Gonzalez <eduardo.gonzalez@amarulasolutions.com>
A lock is used to protect concurrent access to the services structure, once the service is found there is no need to continue locking the resource. The later allows to block the request input as long as the user want without locking the services and other members of the manager. Signed-off-by: Eduardo Gonzalez <eduardo.gonzalez@amarulasolutions.com>
Unref missing GPtrArray memory and add function to properly free field description structs. Signed-off-by: Eduardo Gonzalez <eduardo.gonzalez@amarulasolutions.com>
c74f550 to
895478fCompareUh oh!
There was an error while loading. Please reload this page.
🧩 Build Artifacts ✅ The following build artifacts were produced: |
No description provided.