Commit Graph

59 Commits

Author SHA1 Message Date
Andrew V. Samoilov
e9be8219a0 * sfs.c (sfs_init): Fix possible buffer overflows for invalid sfs.ini. 2004-08-14 10:56:09 +00:00
Pavel Roskin
6ffd35bf07 * gc.c: Eliminate all code for timestamping parent filesystems.
It's broken and undocumented.  Adjust all dependencies.
2003-11-26 21:10:42 +00:00
Pavel Roskin
54b8c9aaad * vfs.c (vfs_split): Deconstify.
* direntry.c (vfs_s_get_path_mangle): Likewise.  "mangle" is in
the name for a reason.  Use vfs_s_get_path() instead where the
path should be preserved.
* extfs.c (extfs_get_path_mangle): Likewise.
* sfs.c (sfs_vfmake): Protect against changes in vfs_split().
2003-11-14 08:25:50 +00:00
Pavel Roskin
4b5a2a0b62 * direntry.c (vfs_s_stamp_me): Generalize and move ...
* gc.c (vfs_stamp_create): ... here.  Use whenever possible.
2003-11-13 08:03:03 +00:00
Pavel Roskin
de12104436 * gc.c: Use NULL instead of -1 for empty vfsid. Adjust all
dependencies.
* undelfs.c (undelfs_get_path): Don't shadow static ext2_fname.
(undelfs_getid): Likewise.  Use fs for non-empty vfsid.
2003-11-12 23:00:16 +00:00
Pavel Roskin
4eab382dba * gc.c: Make getid(), nothingisopen() and free() methods
optional.  Eliminate trivial implementations.
(vfs_getid): New function - safe wrapper around getid().  Use
it everywhere.
(vfs_ncs_getid): Remove dead code, inprove readability.
2003-11-08 23:53:00 +00:00
Pavel Roskin
b33f2cbb47 * vfs.c: Split garbage collection code into ...
* gc.c: ... this.
* vfs.h: Corresponding code moved ...
* gc.h: ... here.
* Makefile.am: Adjustments for the above.
2003-11-07 23:43:55 +00:00
Pavel Roskin
edce41facd * utilvfs.c (vfs_mkstemps): New function - create temporary file
with the name resembling the original, but safe for scripts.
* direntry.c (vfs_s_open): Use it.
(vfs_s_retrieve_file): Likewise.
* extfs.c (extfs_open): Likewise.
* sfs.c (sfs_redirect): Likewise.
2003-10-29 00:50:36 +00:00
Pavel Roskin
77bcdc8127 * vfs.c (mc_ungetlocalcopy): Free local path here, not in class
implementations.
* vfs.h (struct vfs_s_class): Constify "local" argument for
ungetlocalcopy.  Adjust all implementations.
2003-10-28 21:52:06 +00:00
Pavel Roskin
7d16d65e35 * vfs.h: Constify some arguments for many functions.
* xdirentry.h: Likewise.  Adjust all dependencies.
2003-10-28 02:10:33 +00:00
Pavel Roskin
5bc20fd294 * *.c: Rename functions that don't have an a prefix indicating
what file they are defined in.  This simplifies debugging.
2003-10-28 00:57:02 +00:00
Pavel Roskin
50045218ab Remove unneeded includes in ../src 2003-10-25 21:34:57 +00:00
Pavel Roskin
72c64a60e2 * extfs.c: Switch to self-registration.
* mcfs.c: Likewise.
* sfs.c: Likewise.
* smbfs.c: Likewise.
* undelfs.c: Likewise.
* vfs.s (_vfs_add_noncurrent_stamps): Temporary disable code
that uses vfs_extfs_ops.
(vfs_file_is_smb): Remove.
2003-10-12 22:25:53 +00:00
Pavel Roskin
00b57fd4bf * vfs.h: Remove typedef vfs, it's too ambiguous. Massive
changes to use struct vfs_class instead.
2003-10-12 00:24:00 +00:00
Pavel Roskin
6e6fd9b352 * vfs.c (vfs_add_noncurrent_stamps): Call vfs_rm_parents() at
the end.  Change all callers not to call it.
(vfs_rm_parents): Make static.
2003-10-11 17:30:54 +00:00
Pavel Roskin
1d6e00faf0 * vfs.h: Introduce new VFS flags instead of the old unused ones.
* vfs.c (vfs_file_class_flags): New function.
(vfs_file_is_ftp): Eliminate.
(vfs_file_is_smb): Likewise.
(vfs_file_is_local): Likewise.
(vfs_current_is_local): Use new VFSF_LOCAL flag.
2003-10-11 08:21:16 +00:00
Pavel Roskin
091023c37a * undelfs.c (undelfs_get_path): Constify first argument.
* vfs.h (struct vfs_class): Constify path.  Fix all dependencies.
2003-10-11 07:20:53 +00:00
Pavel Roskin
e06e87edc2 Include execute.h. 2003-06-22 09:18:12 +00:00
Pavel Roskin
271a2564fd * sfs.c: Remove "uid" from struct cachedfile - it's unused now. 2002-12-06 02:18:10 +00:00
Pavel Roskin
b9c6a9b3d1 * vfs.h: Remove vfs_uid and vfs_gid. Fix all dependencies. 2002-12-06 02:14:28 +00:00
Andrew V. Samoilov
3d4ea6e96d * sfs.c (vfmake): Use open_error_pipe() and close_error_pipe(). 2002-10-04 13:24:10 +00:00
Pavel Roskin
da7e82d253 Global removal of RCS Id: flags. 2002-09-26 23:13:45 +00:00
Pavel Roskin
bbc35a31cf * sfs.c (sfs_init): Parametrize sfs.ini to allow reuse of the
messages in other places.
2002-09-26 22:51:27 +00:00
Pavel Roskin
966511399b Move fcntl.h inclusion to global.h. 2002-09-23 06:45:32 +00:00
Pavel Roskin
35aa47461b * sfs.c: Don't use flag EXECUTE_SETUID because it's being
removed as insecure and EXECUTE_WAIT because it has no effect.
* extfs.c: Likewise.
2002-08-19 23:20:03 +00:00
Pavel Roskin
6f3a7c8029 * direntry.c (vfs_s_open): Don't pass O_LINEAR to open() -
this flag is for VFS only, and causes side effects in Cygwin.
* extfs.c (extfs_open): Likewise.
* sfs.c (sfs_open): Likewise.
Reported by Pavel Tsekov <ptsekov@gmx.net>
2002-07-10 17:56:27 +00:00
Pavel Roskin
694468d9bb * sfs.c (sfs_free): Fix memory leak.
(sfs_init): Use PATH_SEP_STR.
2002-07-03 15:27:36 +00:00
Pavel Roskin
78982e7cc5 * sfc.c (sfs_getid): Don't use vfs_die(), return (vfsid)(-1)
instead.
2001-10-02 08:06:37 +00:00
Pavel Roskin
7493ab67ad * sfs.c (sfs_init): Use g_free(), not free() on mc_sfsini. 2001-08-11 04:57:17 +00:00
Andrew V. Samoilov
269af251b8 * sfs.c: Remark about shell removed.
(sfs_init): Optimized.
2001-06-15 22:32:15 +00:00
Pavel Roskin
6fe51516de * cpio.c (vfs_cpiofs_ops): Use short name for the filesystem.
This avoids creating long filenames in dirent.c when the "name"
field is used.
* extfs.c (vfs_extfs_ops): Likewise.
* fish.c (vfs_fish_ops): Likewise.
* ftpfs.c (vfs_ftpfs_ops): Likewise.
* local.c (vfs_local_ops): Likewise.
(vfs_nil_ops): Likewise.
* mcfs.c (vfs_mcfs_ops): Likewise.
* sfs.c (vfs_sfs_ops): Likewise.
* tar.c (vfs_tarfs_ops): Likewise.
* undelfs.c (vfs_undelfs_ops): Likewise.
2001-06-11 21:58:58 +00:00
Pavel Roskin
49d8cd7f50 * sfs.c (sfs_init): Change some warning messages to simplify
their translation.
2001-06-07 05:08:52 +00:00
Andrew V. Samoilov
f52cfa5607 2001-05-30 Ludovic Drolez <ludovic.drolez@freealter.com>
* sfs.c (sfs_init): Don't hardcode location of sfs.ini,
	use mc_home to make mc relocatable.
2001-05-30 12:05:50 +00:00
Andrew V. Samoilov
6eda540762 '* src/main.c: Correct some comments after #endif
(shell): Remove comment and #ifdef around shell variable.
(process_args) [HAVE_SUBSHELL_SUPPORT]: All related args enclosed
between one #ifdef ... #endif pair.
(process_args): smbfs_set_debug () takes a debug level as argument,
commented out.

* vfs/sfs.c (shell): Variable moved to ...
* vfs/util-alone.c (shell): ... here'
2001-05-28 14:19:34 +00:00
Pavel Roskin
fe7780ab1d * sfs.c (vfs_sfs_ops): Typo fix. 2001-05-26 05:11:17 +00:00
Pavel Roskin
112b99950e * sfs.c (redirect): Don't free the filename after failed
mc_mkstemps() - it's not needed anymore.
2001-05-22 07:11:32 +00:00
Pavel Roskin
bea09b932d * src/ext.c (exec_extension): Use mc_mkstemps().
* src/user.c (execute_menu_command): Use mc_mkstemps().
* src/util.c (mc_mkstemps): New function - safely create and
open temporary file. Return the handle and the name.
* src/util.h: Declarations for init_tmpdir() and mc_mkstemps().
Define TMPDIR_DEFAULT and SCRIPT_SUFFIX.
* vfs/direntry.c (vfs_s_open): Use mc_mkstemps. Create and close
temporary file to reserve its name on the filesystem.
(vfs_s_retrieve_file): Use mc_mkstemps().
(g_tempnam): Remove.
* vfs/extfs.c (extfs_open): Use mc_mkstemps().
* vfs/sfs.c (redirect): Likewise.
* vfs/shared_ftp_fish.c (_get_file_entry): Likewise.
(retrieve_file): Likewise.
* vfs/vfs.c (mc_def_getlocalcopy): Likewise.
* vfs/xdirentry.h: Remove declaration of g_tempnam().
2001-05-21 16:21:07 +00:00
Andrew V. Samoilov
1f6dc4fe5a 2000-10-09 Andrew V. Samoilov <sav@bcs.zp.ua>
* sfs.c (redirect): temporary file unlinked on error;

	(sfs_init): warnings are localized
2000-10-09 22:45:50 +00:00
Pavel Machek
c319041ba8 2000-05-15 Andrew V. Samoilov <sav@bcs.zp.ua>
* tar.c (read_header): memory leaking for empty symlink's names fixed

	* utilvfs.c (vfs_split_url): *host is not assigned if host is null

	* ftpfs.c (login_server): new features of vfs_split_url () used,
	  my_get_host_and_username became macro

	* vfs.c (mc_opendir, mc_chdir): unneeded calls to concat_dir_and_file
	  removed (vfs_canon removes trailing '/')

	* sfs.c (vfmake, redirect): allocated memory realeased on errors
2000-05-16 14:59:33 +00:00
Pavel Machek
1139602a9b Return value is needed for mc_[un]getlocalcopy. 1999-11-11 14:23:40 +00:00
Norbert Warmuth
d988df6100 1999-08-18 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/direntry.c (vfs_s_getlocalcopy): There's an aditional strdup
needed. In rare cases a pointer was freed twice. Pavel Machek
pointed this out a while ago but obviously it hasn't been fixed, yet.

* vfs/sfs.c (vfmake): Quote characters with a special meaning to the
shell in filenames/-pathes (Fix Bug #1931, VFS will not work if
your full path has the space character in it.).
1999-08-18 19:08:56 +00:00
Norbert Warmuth
3cf5946891 Revert last patch, it has some issues (you want to update when you already
updated your code with the broken patch).
1999-08-18 05:37:45 +00:00
Norbert Warmuth
8a7769edb3 1999-08-18 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/sfs.c (vfmake): Quote characters with a special meaning to the
shell in filenames/-pathes (Fix Bug #1931, VFS will not work if
your full path has the space character in it.).
1999-08-18 04:53:18 +00:00
Miguel de Icaza
34f790657c Fix from Pavel 1999-04-07 17:37:36 +00:00
Timur Bakeyev
bf81009392 Actually commit all my changers. Fear :> 1999-01-20 22:01:11 +00:00
Miguel de Icaza
85f17a4dc6 Lots of changes:
- SFS-based file systems now work on GNOME edition, I was
	  not waiting for child process to finish decompressing.

	- VFS code cleanup.  I am going to eventually get rid of all
	  the macro-mania that has creeped into the vfs layer.

Miguel
1999-01-11 00:48:23 +00:00
Norbert Warmuth
749d16ba30 Sat Jan 9 19:15:00 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/vfs.c (vfs_timeout_handler): Guard from recursive invocation.

Sat Jan  9 19:13:28 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>

* vfs/sfs.c (sfs_free): Fixed wrong linked list handling (head was
lost after the first iteration).

(sfs_getid): dito, return value was wrong.
1999-01-09 23:08:41 +00:00
Norbert Warmuth
e4c8a9d060 Thu Dec 31 08:47:15 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* sfs.c (sfs_nothingisopen): Assume for now it's always save to free
this filesystem and delete temporary files. This needs further
investigation.

* tar.c: deleted unused empty struct tar_super.

Thu Dec 31 08:40:44 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>

* direntry.c: Split fd_usage into fd_usage and ino_usage. fd_usage
was used for external and internal reference count. This was wrong
because we can free resources taken up by the vfs as soon as the
external reference count (now fd_usage) is zero. The internal
reference count (ino_usage) mustn't matter because the vfs has to
clean up itself in the correct order.
1998-12-31 15:54:49 +00:00
Miguel de Icaza
8fb1821455 Warning fixes + compile fixes -mig 1998-12-15 19:53:55 +00:00
Pavel Machek
965880696c Security (inspired by Norbert Warmuth): make /tmp files 0600 and
create them with O_EXCL for sfs and extfs.
1998-12-15 15:57:39 +00:00