Thread (3 messages) 3 messages, 3 authors, 2009-06-17

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 concerned
that I may have
quoted
basically broken write_inode_full on any inode with
extents.  For
quoted
example, there is another call to write_inode_full in
extent.c that
quoted
might exhibit this same problem.  I think the
right fix would be to
quoted
return to reading the full inode into memory in the
extent_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



      
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help