Ruoyu Wang
2505632938
crypto: ixp4xx - fix buffer chain unwind on allocation failure
...
chainup_buffers() builds a linked list of buffer descriptors for a
scatterlist. If dma_pool_alloc() fails while constructing the list, the
current code sets buf to NULL and later dereferences it unconditionally
at the end of the function:
buf->next = NULL;
buf->phys_next = 0;
This can lead to a null-pointer dereference on allocation failure.
If the failure happens after part of the descriptor chain has already
been allocated and DMA-mapped, the partially constructed chain also
needs to be released.
Fix this by terminating the partially constructed chain on allocation
failure and letting the callers unwind it via their existing cleanup
paths. Also fix ablk_perform() to preserve the hook pointers before
checking for failure, so partially built chains can be freed correctly.
Signed-off-by: Ruoyu Wang <ruoyuw560@gmail.com >
Acked-by: Linus Walleij <linusw@kernel.org >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2026-05-07 16:10:02 +08:00
..
2026-04-15 08:45:00 -07:00
2026-05-01 16:32:42 -07:00
2026-04-24 13:23:50 -07:00
2026-04-27 11:38:16 +02:00
2026-04-23 12:21:14 -07:00
2026-04-27 06:48:16 +09:00
2026-04-24 15:06:55 -07:00
2026-04-13 09:19:42 -04:00
2026-04-24 13:23:50 -07:00
2026-04-27 15:52:51 -06:00
2026-05-07 16:10:02 +08:00
2026-04-26 14:03:20 -07:00
2026-04-24 13:23:50 -07:00
2026-04-06 09:04:53 +02:00
2026-04-17 14:09:02 -07:00
2026-04-14 17:10:15 -07:00
2026-05-07 16:10:02 +08:00
2026-04-17 15:52:58 -07:00
2026-04-21 14:12:01 -07:00
2026-04-04 03:15:39 +09:00
2026-04-17 10:29:01 -07:00
2026-04-24 11:44:52 -07:00
2026-04-30 11:37:39 +02:00
2026-04-14 15:32:39 -07:00
2026-04-24 09:54:45 -07:00
2026-04-10 11:21:06 -03:00
2026-04-06 09:04:53 +02:00
2026-04-24 11:59:46 -07:00
2026-05-01 12:49:29 +10:00
2026-04-02 15:55:09 +02:00
2026-04-22 18:36:40 -07:00
2026-04-02 22:33:44 +02:00
2026-04-12 23:29:31 -07:00
2026-04-24 11:44:52 -07:00
2026-04-15 14:37:32 -07:00
2026-04-06 09:43:18 -05:00
2026-04-24 13:23:50 -07:00
2026-04-20 00:03:38 +02:00
2026-04-12 22:06:02 +02:00
2026-04-24 13:23:50 -07:00
2026-04-21 08:22:18 -07:00
2026-04-22 18:36:40 -07:00
2026-04-07 10:06:50 +02:00
2026-04-17 11:12:42 -07:00
2026-04-17 07:18:03 -07:00
2026-04-09 13:49:19 +01:00
2026-04-18 13:10:14 -05:00
2026-05-01 11:26:15 -07:00
2026-04-17 14:18:55 -07:00
2026-04-17 11:12:42 -07:00
2026-04-20 11:31:01 -07:00
2026-04-24 13:23:50 -07:00
2026-04-10 10:29:58 +02:00
2026-04-02 17:06:09 +02:00
2026-04-27 15:08:04 +02:00
2026-04-24 13:23:50 -07:00
2026-04-30 13:44:30 +02:00
2026-04-27 18:00:43 -07:00
2026-04-15 14:41:21 -07:00
2026-04-13 10:40:26 -07:00
2026-04-27 15:47:21 -06:00
2026-04-06 09:04:53 +02:00
2026-04-18 11:29:14 -07:00
2026-04-17 15:46:46 +02:00
2026-04-02 17:05:56 +02:00
2026-04-24 09:54:45 -07:00
2026-04-23 11:22:16 -07:00
2026-04-14 16:48:56 -07:00
2026-04-17 10:22:08 -07:00
2026-04-18 16:59:09 -07:00
2026-04-20 12:02:24 -07:00
2026-04-08 12:01:37 +02:00
2026-04-19 08:47:40 -07:00
2026-04-01 16:03:05 +02:00
2026-04-02 16:33:00 +02:00
2026-04-23 08:37:07 -07:00
2026-04-30 13:12:29 +09:00
2026-04-17 14:18:55 -07:00
2026-04-20 16:46:22 -07:00
2026-04-23 08:57:24 -07:00
2026-04-06 09:37:51 -05:00
2026-04-25 16:39:03 -07:00
2026-04-28 14:45:02 +02:00
2026-04-27 15:52:51 -06:00
2026-04-17 14:18:55 -07:00
2026-04-17 10:16:53 -07:00
2026-05-01 10:14:39 +09:00
2026-04-24 13:23:50 -07:00
2026-04-21 08:22:18 -07:00
2026-04-16 20:34:34 -07:00
2026-04-14 08:55:18 -07:00
2026-04-10 13:10:28 +02:00
2026-04-19 08:44:41 -07:00
2026-04-08 22:27:16 -04:00
2026-04-05 13:53:44 -07:00
2026-04-21 08:22:18 -07:00
2026-04-04 00:47:50 +02:00
2026-04-21 12:01:22 -06:00
2026-04-23 16:50:42 -07:00
2026-04-22 17:02:55 +02:00
2026-04-26 09:51:29 -07:00
2026-04-15 12:59:16 -07:00
2026-04-03 10:55:12 +02:00
2026-04-07 21:06:59 +02:00
2026-04-23 15:32:59 +02:00
2026-04-23 10:24:02 -07:00
2026-04-23 10:24:02 -07:00