This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fixes for miscellaneous bugs in /proc patch


This patch superceeds "Fix for incorrect handling of open flags in
fhandler_proc".

Fixes the following bugs:
* '.' and '..' directory entries were missing.
* fhandler_*::open() were using the mode parameter as if it was the flags
parameter. This has been corrected and some minor changes made to the error
handling logic.
* Correctly indentifies the case when you try to create a new file in /proc
or one of its subdirectories.
* dup() was broken, hence cat </proc/uptime, etc. failed. This has now been
corrected.
* fhandler_registry::telldir didn't return the correct position in the
directory.
* fhandler_registry::seekdir didn't work.

Regards
Chris

2002-05-03  Christopher January <chris@atomice.net>

 * fhandler_proc.cc (fhandler_proc::open): Change use of mode to flags.
 If the file does not exist already, fail with EROFS if O_CREAT flag is
 set.
 Use cmalloc to allocate memory for filebuf.
 * fhandler_process.cc (fhandler_process::open): Ditto.
 * fhandler_registry.cc (fhandler_registry::open): Ditto.
 Move check for open for writing before open_key.
 * path.cc (path_conv::check): Do not return ENOENT if a file is not found
 in /proc.
 * fhandler_virtual.cc (fhandler_virtual::write): Change EROFS error to
 EACCES error.
 * fhandler_virtual.cc (fhandler_virtual::open): Set the NOHANDLE flag.
 * fhandler_virtual.cc (fhandler_virtual::dup): Add call to
 fhandler_base::dup.
 Allocate child's filebuf using cmalloc.
 Copy filebuf from parent to child.
 * fhandler_virtual.cc (fhandler_virtual::close): Use cfree to free filebuf.
 * fhandler_proc.cc: Add '.' and '..' to directory listing.
 * fhandler_process.cc: Ditto.
 * fhandler_registry.cc: Ditto.
 * fhandler_registry.cc (fhandler_registry::readdir): Add support for '.'
 and '..' files in subdirectories of /proc/registry.
 * fhandler_registry.cc (fhandler_registry::telldir): Use lower 16 bits
 of __d_position as position in directory.
 * fhandler_registry.cc (fhandler_registry::seekdir): Ditto.

Attachment: ChangeLog2
Description: Binary data

Attachment: proc.patch.3
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]