Changes between Initial Version and Version 1 of Ticket #1963


Ignore:
Timestamp:
Mar 26, 2008, 11:02:24 PM (17 years ago)
Author:
bonefish
Comment:

Never write bug reports when too tired. There actually is an entry "cp", I just missed it; it's a directory. This is just another execvp() bug. I thought I was really clever replacing the stat() in the code copied from my APR code by access(), but we obviously also need to make sure that the entry is a regular file.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1963

    • Property Component File Systems/BFSSystem/libroot.so
    • Property Owner changed from axeld to bonefish
    • Property Status newassigned
    • Property Summary BFS Finds Spurious Fileexecvp() Tries to Execute Directories
  • Ticket #1963 – Description

    initial v1  
    11r24582, VMware
    22
    3 While configuring/building gcc, a spurious "cp" entry appeared in the current output directory (.../gcc-obj/gcc/). According to the kernel tracing access() returned OK for the entry and it could even be opened. Reading from it failed with B_BAD_VALUE, though. There's also a respective "bfs_read()..." line in the serial debug output. I suspended and uploaded the virtual machine state (512 MB RAM, 1 GB disk):
    4 
    5   http://tfs.cs.tu-berlin.de/~bonefish/private/haiku/CrashOMatic-non-existent-cp.zip
    6 
    7 BFS tracing was enabled, but I forgot to enable block cache tracing. :-/
     3When execvp() finds a matching entry in the PATH, it doesn't make sure that it is a regular file. E.g. create a "cp" directory in the cwd and make it executable. execvp("cp",...) will try to execute it.