rpms/vsftpd/devel vsftpd-2.0.5-write_race.patch, NONE, 1.1 vsftpd.spec, 1.67, 1.68 vsftpd-2.0.5-uniq_rename.patch, 1.1, NONE

Martin Nagy (mnagy) fedora-extras-commits at redhat.com
Fri Nov 30 08:53:19 UTC 2007


Author: mnagy

Update of /cvs/extras/rpms/vsftpd/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31347

Modified Files:
	vsftpd.spec 
Added Files:
	vsftpd-2.0.5-write_race.patch 
Removed Files:
	vsftpd-2.0.5-uniq_rename.patch 
Log Message:
* Fri Nov 30 2007 Martin Nagy <mnagy at redhat.com> - 2.0.5-21
- Remove uniq_rename patch.
- Correct create/lock race condition, original patch by <mpoole at redhat.com>
  (#240550).


vsftpd-2.0.5-write_race.patch:

--- NEW FILE vsftpd-2.0.5-write_race.patch ---
diff -up vsftpd-2.0.5/sysutil.h.write_race vsftpd-2.0.5/sysutil.h
--- vsftpd-2.0.5/sysutil.h.write_race	2007-11-21 08:48:28.000000000 +0100
+++ vsftpd-2.0.5/sysutil.h	2007-11-21 08:48:28.000000000 +0100
@@ -91,6 +91,8 @@ void vsf_sysutil_close(int fd);
 int vsf_sysutil_close_failok(int fd);
 int vsf_sysutil_unlink(const char* p_dead);
 int vsf_sysutil_write_access(const char* p_filename);
+/* Trucate after open */
+int vsf_sysutil_truncate(int fd, filesize_t length);
 
 /* Reading and writing */
 void vsf_sysutil_lseek_to(const int fd, filesize_t seek_pos);
diff -up vsftpd-2.0.5/postlogin.c.write_race vsftpd-2.0.5/postlogin.c
--- vsftpd-2.0.5/postlogin.c.write_race	2007-11-21 08:48:28.000000000 +0100
+++ vsftpd-2.0.5/postlogin.c	2007-11-21 08:51:59.000000000 +0100
@@ -953,6 +953,7 @@ handle_upload_common(struct vsf_session*
   struct vsf_transfer_ret trans_ret;
   int new_file_fd;
   int remote_fd;
+  int truncit = 0;
   filesize_t offset = p_sess->restart_pos;
   p_sess->restart_pos = 0;
   if (!data_transfer_checks_ok(p_sess))
@@ -987,7 +988,15 @@ handle_upload_common(struct vsf_session*
     /* For non-anonymous, allow open() to overwrite or append existing files */
     if (!is_append && offset == 0)
     {
-      new_file_fd = str_create_overwrite(p_filename);
+      if (tunable_lock_upload_files)
+      {
+        new_file_fd = str_create_append(p_filename);
+        truncit = 1;
+      }
+      else
+      {
+        new_file_fd = str_create_overwrite(p_filename);
+      }
     }
     else
     {
@@ -1023,6 +1032,11 @@ handle_upload_common(struct vsf_session*
   if (tunable_lock_upload_files)
   {
     vsf_sysutil_lock_file_write(new_file_fd);
+    if (truncit)
+    {
+      vsf_sysutil_truncate(new_file_fd, 0);
+      vsf_sysutil_lseek_to(new_file_fd, 0);
+    }
   }
   if (!is_append && offset != 0)
   {
diff -up vsftpd-2.0.5/sysutil.c.write_race vsftpd-2.0.5/sysutil.c
--- vsftpd-2.0.5/sysutil.c.write_race	2007-11-21 08:48:28.000000000 +0100
+++ vsftpd-2.0.5/sysutil.c	2007-11-21 08:48:28.000000000 +0100
@@ -1196,6 +1196,12 @@ vsf_sysutil_close_failok(int fd)
 }
 
 int
+vsf_sysutil_truncate(int fd, filesize_t length)
+{
+  return ftruncate(fd, length);
+}
+
+int
 vsf_sysutil_unlink(const char* p_dead)
 {
   return unlink(p_dead);


Index: vsftpd.spec
===================================================================
RCS file: /cvs/extras/rpms/vsftpd/devel/vsftpd.spec,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- vsftpd.spec	8 Nov 2007 14:40:51 -0000	1.67
+++ vsftpd.spec	30 Nov 2007 08:52:44 -0000	1.68
@@ -3,7 +3,7 @@
 Summary: Very Secure Ftp Daemon
 Name: vsftpd
 Version: 2.0.5
-Release: 20%{?dist}
+Release: 21%{?dist}
 License: GPL
 Group: System Environment/Daemons
 URL: http://vsftpd.beasts.org/
@@ -39,10 +39,10 @@
 Patch24: vsftpd-2.0.5-file_stat.patch
 Patch25: vsftpd-2.0.5-confspell.patch
 Patch26: vsftpd-2.0.5-bind_denied.patch
-Patch27: vsftpd-2.0.5-uniq_rename.patch
 Patch28: vsftpd-2.0.5-anon_umask.patch
 Patch29: vsftpd-2.0.5-pasv_dot.patch
 Patch30: vsftpd-2.0.5-pam_end.patch
+Patch31: vsftpd-2.0.5-write_race.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 %if %{tcp_wrappers}
@@ -96,10 +96,10 @@
 %patch24 -p1 -b .file_stat
 %patch25 -p1
 %patch26 -p1 -b .bind_denied
-%patch27 -p1 -b .uniq_rename
 %patch28 -p1 -b .anon_umask
 %patch29 -p1 -b .pasv_dot
 %patch30 -p1 -b .pam_end
+%patch31 -p1 -b .write_race
 
 %build
 %ifarch s390x
@@ -158,6 +158,11 @@
 %{_var}/ftp
 
 %changelog
+* Fri Nov 30 2007 Martin Nagy <mnagy at redhat.com> - 2.0.5-21
+- Remove uniq_rename patch.
+- Correct create/lock race condition, original patch by <mpoole at redhat.com>
+  (#240550).
+
 * Thu Nov 08 2007 Martin Nagy <mnagy at redhat.com> - 2.0.5-20
 - Correct calling of pam_end (#235843).
 


--- vsftpd-2.0.5-uniq_rename.patch DELETED ---




More information about the fedora-extras-commits mailing list