1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00
Files
mariadb/sql
Dmitry Shulga 852e4510fa MDEV-26115: Crash when calling stored function in FOR loop argument
On handling SP statement `FOR IN lower_bound..func() DO` the instruction
sp_instr_set is allocated on sp_head's memory root, whereas an instance
of the class Item_func_sp pointed by the data member
   sp_instr_set::sp_result_field
is allocated on runtime memory root. In result, on finishing the first
execution of a stored routine the memory allocated for the instance of
the class Item_func_sp is released whereas the pointer
  sp_instr_set::sp_result_field
still references the deleted memory. Next time the same stored routine
is run dereferencing deallocated memory results in abnormal server
termination.

To fix the issue, allocate an instance of the class Item_func_sp on
sp_head memory root. Do this allocation only once, meaning the
  Item_func_sp::cleanup
doesn't do deletion an instance of the class Item_func_sp and
nullifying the data member sp_instr_set::sp_result_field.
2025-07-23 09:34:47 +07:00
..
2025-05-21 07:36:35 +03:00
2024-08-12 09:32:30 +01:00
2024-11-29 12:37:46 +02:00
2024-01-17 13:35:05 +02:00
2024-11-29 13:43:17 +02:00
2024-06-24 13:09:47 +03:00
2023-06-27 17:43:31 +03:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-10-29 15:24:38 +01:00
2025-01-29 11:17:38 +01:00
2025-01-30 11:55:13 +01:00
2025-01-30 11:55:13 +01:00
2025-04-15 01:49:48 +02:00
2023-12-17 11:20:43 +01:00
2024-05-30 16:04:00 +03:00
2025-02-27 04:02:33 +01:00
2023-02-10 12:02:11 +02:00
2024-11-29 13:43:17 +02:00
2024-11-29 13:43:17 +02:00
2024-12-05 10:11:58 +01:00
2025-03-27 08:01:47 +02:00
2024-10-29 15:24:38 +01:00
2024-10-29 15:24:38 +01:00
2024-07-16 15:54:22 +08:00
2024-07-16 15:54:22 +08:00
2025-01-30 11:55:13 +01:00
2025-01-10 13:14:42 +01:00
2024-11-29 13:43:17 +02:00
2024-10-29 15:24:38 +01:00
2024-10-29 15:24:38 +01:00
2024-10-29 15:24:38 +01:00
2024-07-22 15:14:50 +02:00
2024-11-29 13:43:17 +02:00
2023-11-08 16:23:30 +01:00
2025-01-08 12:51:26 +02:00
2024-06-27 10:26:09 +03:00
2024-06-24 13:09:47 +03:00
2025-01-30 11:55:13 +01:00
2025-01-30 11:55:13 +01:00
2025-06-25 14:14:50 +03:00
2024-11-29 12:37:46 +02:00
2023-11-08 16:23:30 +01:00
2024-11-29 12:37:46 +02:00
2024-05-30 16:04:00 +03:00
2023-02-10 13:43:53 +02:00
2025-03-27 08:01:47 +02:00
2023-10-14 13:36:11 +03:00
2024-10-29 15:24:38 +01:00
2024-01-17 13:35:05 +02:00
2024-06-24 13:09:47 +03:00
2023-02-10 13:43:53 +02:00
2024-11-29 13:43:17 +02:00
2024-07-16 15:54:22 +08:00
2023-12-18 11:19:04 +01:00
2023-12-18 11:19:04 +01:00
2024-11-29 12:37:46 +02:00
2024-06-24 13:09:47 +03:00
2023-03-24 12:54:05 +11:00
2024-11-29 12:37:46 +02:00
2024-11-29 13:43:17 +02:00
2024-07-22 15:14:50 +02:00
2023-02-10 12:02:11 +02:00
2025-01-30 11:55:13 +01:00
2025-01-29 11:17:38 +01:00
2024-11-29 12:37:46 +02:00
2024-11-29 13:43:17 +02:00
2024-12-04 18:22:31 +03:00
2023-05-02 10:09:27 +02:00
2024-11-23 08:14:22 -07:00
2025-01-30 11:55:13 +01:00
2023-11-08 15:57:05 +01:00
2024-11-29 13:43:17 +02:00
2024-11-29 12:37:46 +02:00
2024-06-24 13:09:47 +03:00
2024-12-05 09:20:36 +01:00
2025-01-10 13:14:42 +01:00
2024-06-24 13:09:47 +03:00
2025-01-30 11:55:13 +01:00
2025-01-30 11:55:13 +01:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2023-07-10 11:22:21 +03:00
2024-11-29 13:43:17 +02:00
2024-11-29 13:43:17 +02:00
2025-04-26 10:47:03 +02:00
2024-01-18 19:22:23 +02:00
2023-02-10 12:02:11 +02:00
2025-04-26 10:41:52 +02:00
2024-11-23 08:14:22 -07:00
2025-07-22 10:05:24 -06:00
2025-07-22 10:05:24 -06:00
2025-02-02 23:17:20 +01:00
2024-11-29 12:37:46 +02:00
2024-01-11 12:59:22 +11:00
2024-01-10 18:01:46 +11:00
2023-02-10 13:03:01 +02:00
2024-08-03 09:04:24 +02:00
2024-08-20 10:00:39 +02:00
2024-07-22 15:14:50 +02:00
2024-07-22 15:14:50 +02:00
2024-02-14 16:12:53 +02:00
2024-06-27 10:26:09 +03:00
2024-12-17 11:06:09 +11:00
2024-11-29 12:37:46 +02:00
2025-04-26 10:47:03 +02:00
2025-04-26 10:47:03 +02:00
2024-06-24 13:09:47 +03:00
2025-04-26 10:47:03 +02:00
2023-05-23 12:25:39 +03:00
2024-11-29 13:43:17 +02:00
2025-01-30 11:55:13 +01:00
2024-06-11 12:50:10 +03:00
2024-04-15 18:54:30 +02:00
2024-07-03 12:45:30 +02:00
2023-08-04 08:01:06 +02:00
2025-01-30 11:55:13 +01:00
2023-12-17 11:20:43 +01:00
2023-12-17 11:20:43 +01:00
2025-04-21 11:23:11 +02:00
2025-01-30 11:55:13 +01:00
2023-12-02 01:02:50 +01:00
2025-01-02 12:39:56 +02:00
2025-06-04 14:09:23 +02:00
2024-11-29 12:37:46 +02:00
2024-08-29 07:47:29 +03:00
2024-03-27 15:00:56 +02:00
2025-04-15 01:49:48 +02:00
2024-06-17 09:08:07 +03:00
2024-05-30 16:04:00 +03:00
2025-01-20 09:57:37 +02:00
2025-03-27 08:01:47 +02:00
2024-07-22 15:14:50 +02:00
2023-09-25 13:06:57 +10:00
2023-10-14 13:36:11 +03:00
2024-01-18 19:22:23 +02:00
2023-08-01 15:08:52 +02:00
2024-11-29 13:43:17 +02:00
2024-11-29 13:43:17 +02:00
2024-11-23 08:14:22 -07:00
2024-11-23 08:14:23 -07:00
2025-04-26 10:47:03 +02:00
2025-01-08 12:51:26 +02:00
2025-03-27 08:01:47 +02:00
2025-06-04 14:09:23 +02:00
2024-11-29 13:43:17 +02:00
2024-01-10 18:01:46 +11:00
2025-06-25 14:14:50 +03:00
2024-11-05 21:32:48 +01:00
2024-06-24 13:09:47 +03:00
2025-05-21 07:36:35 +03:00
2023-02-10 12:02:11 +02:00
2024-11-29 13:43:17 +02:00
2024-02-21 13:08:23 +02:00
2024-01-02 17:37:58 +02:00
2024-06-27 10:26:09 +03:00
2025-06-04 14:09:23 +02:00
2025-05-26 08:10:47 +03:00
2024-05-10 20:02:18 +02:00
2024-01-03 15:37:57 +02:00
2025-05-21 07:36:35 +03:00
2025-01-30 11:55:13 +01:00
2024-10-03 10:55:08 +03:00
2025-04-02 06:33:39 +02:00
2025-01-29 11:17:38 +01:00
2025-03-27 08:01:47 +02:00
2024-10-29 15:24:38 +01:00
2023-10-14 13:36:11 +03:00
2025-02-02 23:17:20 +01:00
2025-02-02 23:17:20 +01:00
2024-11-29 13:43:17 +02:00