In the Linux kernel, the following vulnerability has been resolved:
nvmem: core: fix cleanup after devsetname()
If devsetname() fails, we leak nvmem->wpgpio as the cleanup does not put this. While a minimal fix for this would be to add the gpiodput() call, we can do better if we split deviceregister(), and use the tested nvmemrelease() cleanup code by initialising the device early, and putting the device.
This results in a slightly larger fix, but results in clear code.
Note: this patch depends on "nvmem: core: initialise nvmem->id early" and "nvmem: core: remove nvmemconfig wpgpio".
[Srini: Fixed subject line and error code handing with wp_gpio while applying.]