Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
pygobject
pygobject
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 149
    • Issues 149
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Registry
    • Registry
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • pygobjectpygobject
  • Merge Requests
  • !12

Merged
Opened Jan 26, 2018 by Mikhail Fludkov@fludkov.me
  • Report abuse
Report abuse

pygobject-object: fix memory corruption around list of closures

#158 (closed)

The memory corruption occurs because of the race while accessing PyGObjectData->closures list.

Protect PyGObjectData->closures by GIL in pygobject_unwatch_closure. Despite the fact that we don't call any Python API in the function. We use GIL to be sure that PyGObjectData->closures list stays intact while GC iterating the list inside pygobject_traverse. Otherwise we can segfault while trying to call 'visit' function on an object that was just freed in pygobject_unwatch_closure.

  • Discussion 4
  • Commits 1
  • Pipelines 3
  • Changes 2
Assignee
No assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: GNOME/pygobject!12

Revert this merge request

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.