Re: [PATCH] libext2fs: write only core inode in update_path()
From: number9652 <hidden>
Date: 2009-06-17 21:32:16
number9652 wrote:quoted
--- On Wed, 6/17/09, Eric Sandeen wrote:right way to fix it, however. I am concernedthat I may havequoted
basically broken write_inode_full on any inode withextents. Forquoted
example, there is another call to write_inode_full inextent.c thatquoted
might exhibit this same problem. I think theright fix would be toquoted
return to reading the full inode into memory in theextent_open If this is the case (that it's broken now), then we really need something in the regression suite to catch it - all tests pass in 1.41.6 .... -Eric
I was too general in my statement above about what it broke. I think (didn't test) if a program follows this path:
extent_open(...,*handle)
write_inode_full(...,handle->inode,...)
that it will read uninitialized memory in write_inode_full. It seems clear that all previously written code assumes that this path is valid, and fixing all that to not assume that would seemingly be much more than just what your patch fixes and require more time to test. If you only use read/write_inode_full, everything is still okay.
I think that in this case, even when only using the handle to read the inode, we want to have the full inode available (by handle->inode) so it is possible (for example) to check the file creation time with the returned handle structure.
Nic