Skip to content

BUG: Null pointer dereference when setting node outcome to null #647

@tturocy

Description

@tturocy

This appears from version 16.4:

In [1]: import pygambit as gbt

In [2]: g = gbt.Game.new_tree()

In [3]: g.set_outcome(g.root, None)
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[3], line 1
----> 1 g.set_outcome(g.root, None)

File ~/projects/gambit/src/pygambit/game.pxi:1950, in pygambit.gambit.Game.set_outcome()
   1948 resolved_node = cython.cast(Node, self._resolve_node(node, "set_outcome"))
   1949 if outcome is None:
-> 1950     self.game.deref().SetOutcome(resolved_node.node, cython.cast(c_GameOutcome, NULL))
   1951     return
   1952 resolved_outcome = cython.cast(Outcome, self._resolve_outcome(outcome, "set_outcome"))

RuntimeError: Dereferenced null pointer

This is a consequence of an unhandled special case holding over from the move to using std::shared_ptr for game object reference counting.

Metadata

Metadata

Assignees

Labels

bugc++Items which involve writing in C++testsItems which involve the pygambit test suite

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions