Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Fix HanabiState.copy setting a bad pointer for _game member #35

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

98devin
Copy link

@98devin 98devin commented Jul 30, 2020

Fixes HanabiState.fireworks() returning incorrect data when called on a copied HanabiState object.

Came across this bug in work-related project.
The bug is pretty easily fixed by retrieving the parent game of the state into an existing pyhanabi_game_t* instead of returning a void pointer as was done before.

Steps to reproduce the bug as it existed:

  • Create a HanabiState object by calling HanabiState.copy or using the copy constructor manually
  • HanabiState._game will receive a hanabi_learning_env::HanabiGame* rather than pyhanabi_game_t*.
  • HanabiState.fireworks() and any derived HanabiObservation.fireworks() calls will return bad data, because lib.NumPlayers/lib.NumColors/lib.NumRanks will access garbage memory when called on the resulting _game field.

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

@NeilBurch
Copy link
Contributor

Hi 98devin,
Thank you for the suggested fix. It looks right to me. Could you please sign the CLA, and I'll merge those changes?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants