Files
nethack/include
nhmall bee21e3447 fix K4318
Reported by paxed. A potion of oil, that was already in the midst of exploding,
got picked up through spot_effects(), which led to it merging with
another potion of oil and the freeing of the original obj.

The original obj pointer was still held by breakobj(), and breakobj()
proceeded to delete the obj (again).

Function nesting:

 1    spelleffects()
 2     -> weffects()
 3      -> bhit()
 4       -> bhitpile()
 5        -> bhito(obj ...)
 6         -> hero_breaks(obj ...)
 7          -> breakobj(obj ...)
 8           -> explode_oil(obj ...)
 9            -> splatter_burning_oil()
10             -> explode()
11              -> zap_over_floor()
12               -> melt_ice()
13                -> spot_effects()
14                 -> pickup()
15                  -> pickup_object(obj ...)
16                   -> pick_obj(obj ...)
17                    -> addinv(obj ...)
18                     -> addinv_core0(obj ...)
19                      -> merged(obj ...)
20                       -> obfree(obj ...)
21                        -> dealloc_obj(obj ...)

 8           -> delobj(obj ...)
 9            -> delobj_core(obj ...)
10             -> obfree(obj ...)
11              -> dealloc_obj(obj ...)
12               -> impossible("obj already deleted)

This marks the exploding potion with LOST_EXPLODING, so that it won't
get picked up, or merged with another object during the long
sequence of functions, and that should take care of 15-21 above.
2025-01-12 13:50:25 -05:00
..
2022-02-04 11:01:20 -05:00
2022-03-13 13:58:56 -07:00
2022-11-29 21:53:21 -05:00
2024-02-28 11:47:16 -08:00
2024-12-15 09:53:50 -05:00
2024-11-23 19:04:12 +02:00
2022-06-30 23:48:18 -04:00
2024-12-20 10:32:38 -05:00
2025-01-02 23:12:15 -08:00
2024-09-06 13:08:07 -07:00
2023-03-01 14:00:29 +02:00
2024-10-12 14:56:36 -04:00
2021-01-26 21:06:16 -05:00
2024-12-19 18:18:11 -08:00
2024-12-20 10:32:38 -05:00
2024-10-05 15:55:20 -04:00
2024-07-07 17:34:37 -07:00
2024-09-06 13:08:07 -07:00
2022-06-19 02:30:45 -07:00
2024-09-06 13:08:07 -07:00
2024-02-28 20:15:56 -08:00
2024-02-24 13:49:51 -08:00
2025-01-12 13:50:25 -05:00
2024-09-18 21:39:55 +03:00
2024-12-20 10:32:38 -05:00
2024-09-06 13:08:07 -07:00
2024-11-26 20:57:11 -08:00
2022-10-26 14:21:23 -04:00
2022-10-26 14:21:23 -04:00
2022-10-26 14:21:23 -04:00
2023-10-16 09:11:05 -04:00
2024-03-07 11:01:04 -05:00
2024-02-28 20:15:56 -08:00
2024-09-06 13:08:07 -07:00
2024-03-07 11:01:04 -05:00
2024-08-17 11:19:45 -07:00
2024-11-13 09:07:10 -05:00
2023-11-22 16:01:58 -05:00
2020-08-12 16:15:28 -07:00
2024-06-15 19:04:57 +03:00
2024-12-20 10:32:38 -05:00
2024-12-20 10:32:38 -05:00
2024-09-06 13:08:07 -07:00
2022-06-30 23:48:18 -04:00
2025-01-04 23:38:34 -05:00
2025-01-04 19:01:34 -05:00
2025-01-04 23:38:34 -05:00
2025-01-04 23:38:34 -05:00
2022-10-26 14:21:23 -04:00
2022-10-26 14:21:23 -04:00
2024-11-26 20:57:11 -08:00