Comment 0 for bug 1947709

Revision history for this message
Andrea Righi (arighi) wrote :

[Impact]

"UBUNTU: SAUCE: cachefiles: Page leaking in cachefiles_read_backing_file while vmscan is active" has been applied to fix a page leaking issue.

However a slightly different fix has been applied upstream:

9a24ce5b66f9c8190d63b15f4473600db4935f1f cachefiles: Fix page leak in cachefiles_read_backing_file while vmscan is active

Basically we are fixing the same issue in two different ways at the same time, but even worse our patch an introduce a potential NULL pointer dereference: we do a put_page(newpage) and set newpage = NULL in the main for() loop and then we may do additional put_page(newpage) after the main for loop if ret == -EEXIST, that would trigger the NULL pointer dereference.

[Test case]

No test case or reproducer is available at the moment, this issue has been found simply by reviewing the code.

[Fix]

Drop the SAUCE patch and rely on the upstream fix.

[Regression potential]

If the analysis is not correct we may re-introduce a page leak in
cachefiles (NFS for example), but it seems unlikely to happen, since the upstream fix is addressing the page leaking already.
I think we should really drop this SAUCE patch from all the kernels that are applying the upstream fix already (9a24ce5b66f9c8190d63b15f4473600db4935f1f).