Confused file name in directory

simon at its63b.UUCP simon at its63b.UUCP
Fri Feb 27 23:36:44 AEST 1987


In article <5587 at mimsy.UUCP> chris at mimsy.UUCP (Chris Torek) writes:
>In article <105 at aob.UUCP> someone finds a directory entry with an
>embedded NUL, and has nothing handy to fix it.
>
>There is still another way, easier yet but more dangerous and
>thrilling.  You cannot edit a directory, but you can edit a file.
>And the only difference between the two is one byte.
>
>Write another program, `hacki'.
>Instead of zeroing the inode, toggle the S_IFDIR and S_IFREG bits.
>Run it once on the directory inode, and now it is a file.  Use your
>favourite binary editor (Emacs works, but be sure it does not make
>a backup!), fix the embedded NUL character.  Make sure the file size
>is exactly the same as before.  Then run the hacki program once
>more.
>
>Of course, if you have source, you could alter fsck to check for
>embedded NULs in filenames.

Another "entity" you can edit is a disk - using a nice powerful editor
like adb :-) So, just find the i-number for the directory, then: power-up
your adb, find the inode-entry for the directory, from which you can find the
data-block list (luckily there're hardly ever any indirect blocks in a 
directory, unless its very big), find the bad bytes, and change them to 
something sensible.

Why write new code when you do anything you need using existing utilities :-)

-- 

-----------------------------
Simon Brown                                             @@@\
Department of Computer Science                         /-/@ \
University of Edinburgh, Scotland, UK.                / /@   \@@
                                                     / /@     \-\
UUCP:  seismo!mcvax!ukc!{its63b,cstvax}!simon       / /@/-/    \ \
JANET: simon at uk.ac.ed.{its63b,cstvax}              / /@/ / /-/  \ \
ARPA:  simon@{its63b,cstvax}.ed.ac.uk             /-/@/-/ /-/    \ \
------------------------------                   ~~~~~~~~~~~~~~~~~~~~
                                             "Life's like that, you know"



More information about the Comp.unix.questions mailing list