jerpelea opened a new pull request, #19827:
URL: https://github.com/apache/nuttx/pull/19827

   ## Summary
   
   cromfs_read()'s fast path decompresses a block directly into the caller's 
buffer whenever a read reaches a block at its start and the caller has room for 
the whole decompressed block, bypassing the per-file decompression cache 
(ff_buffer). It nonetheless marked that block as cached by setting ff_offset, 
without ever writing ff_buffer itself.
   
   A later read of the same block that fell onto the slow path trusted that 
false cache tag, skipped decompression, and copied from ff_buffer without it 
ever having been populated for that block. A repeated identical fast-path read 
of the same block hit the same false tag and skipped decompression entirely, 
leaving the caller's buffer untouched and returning whatever was already there.
   
   Fixed by having the fast path only read the cache, never populate it: reuse 
ff_buffer when a prior slow-path read already cached the same block, otherwise 
decompress straight into the caller's buffer without touching 
ff_offset/ff_buffer.
   
   ## Impact
   
   RELEASE
   
   ## Testing
   
   CI


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to