CVE-2026-98324 PUBLISHED

dmaengine: pxa: fix double counting of the hw descriptors

Assigner: Linux
Reserved: 25.09.2026 Published: 06.10.2026 Updated: 06.10.2026

In the Linux kernel, the following vulnerability has been resolved:

dmaengine: pxa: fix double counting of the hw descriptors

pxad_alloc_desc() was converted from

<pre> kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc), GFP_NOWAIT) </pre>

to kzalloc_flex(), which sets the __counted_by() counter sw_desc->nb_desc itself - but only where the compiler has __builtin_counted_by_ref(), so from gcc 15.1 or clang 22.1 on. The loop below it still increments nb_desc, which makes it come out doubled there and correct elsewhere.

nb_desc is what pxad_free_desc() iterates over and what set_updater_desc() indexes from, so set it explicitly and drop the increment. The error path has to lower it to the number of descriptors allocated so far, otherwise pxad_free_desc() would free entries that were never allocated.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 69050f8d6d075dc01af7a5f2f550a8067510366f to 1de93785f32b450e9eae1e4fcfb7d03eb49eb27e (excl.)
  • affected from 69050f8d6d075dc01af7a5f2f550a8067510366f to f6504be006aa4bb4bd26285f410a885c17920d65 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 7.0 is affected
  • unaffected from 0 to 7.0 (excl.)
  • unaffected from 7.2.8 to 7.2.* (incl.)
  • unaffected from 7.3-rc4 to * (incl.)

References