diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 432aa4fef..8cf3e37c6 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -339,6 +339,7 @@ make score file processing more bullet proof to avoid potential security issue towel equipped in weapon, alternate weapon, or quiver slot can be applied lit candle or potion of oil which burned out while equipped would leave stale weapon/alternate-weapon/quiver pointer that could cause panic or crash +wielded/worn figurine which auto-transformed had same stale pointer bug Platform- and/or Interface-Specific Fixes diff --git a/src/apply.c b/src/apply.c index 58c36bc45..7c2ba7696 100644 --- a/src/apply.c +++ b/src/apply.c @@ -1852,8 +1852,12 @@ long timeout; } } /* free figurine now */ - obj_extract_self(figurine); - obfree(figurine, (struct obj *)0); + if (carried(figurine)) { + useup(figurine); + } else { + obj_extract_self(figurine); + obfree(figurine, (struct obj *)0); + } if (redraw) newsym(cc.x, cc.y); }