From 22ab795cf96237fe422d14246b487b8de851b2c5 Mon Sep 17 00:00:00 2001 From: Maros Barabas Date: Jan 19 2007 12:17:08 +0000 Subject: Added lost patch uniq_rename --- diff --git a/vsftpd-2.0.5-uniq_rename.patch b/vsftpd-2.0.5-uniq_rename.patch new file mode 100644 index 0000000..47cd04f --- /dev/null +++ b/vsftpd-2.0.5-uniq_rename.patch @@ -0,0 +1,76 @@ +--- vsftpd-2.0.3/postlogin.c.uniq_rename 2005-03-19 12:15:59.000000000 +0100 ++++ vsftpd-2.0.3/postlogin.c 2005-07-18 15:52:20.000000000 +0200 +@@ -70,7 +70,7 @@ + static void check_abor(struct vsf_session* p_sess); + static void handle_sigurg(void* p_private); + static void handle_upload_common(struct vsf_session* p_sess, int is_append, +- int is_unique); ++ int is_unique, int uniq_rename); + static void get_unique_filename(struct mystr* p_outstr, + const struct mystr* p_base); + static int data_transfer_checks_ok(struct vsf_session* p_sess); +@@ -931,11 +931,11 @@ + static void + handle_stor(struct vsf_session* p_sess) + { +- handle_upload_common(p_sess, 0, 0); ++ handle_upload_common(p_sess, 0, 0, 1); + } + + static void +-handle_upload_common(struct vsf_session* p_sess, int is_append, int is_unique) ++handle_upload_common(struct vsf_session* p_sess, int is_append, int is_unique, int uniq_rename) + { + static struct mystr s_filename; + struct mystr* p_filename; +@@ -952,6 +952,12 @@ + p_filename = &p_sess->ftp_arg_str; + if (is_unique) + { ++ if (uniq_rename) ++ if (!vsf_access_check_file(p_filename)) ++ { ++ vsf_cmdio_write(p_sess, FTP_NOPERM, "Permission denied."); ++ return; ++ } + get_unique_filename(&s_filename, p_filename); + p_filename = &s_filename; + } +@@ -1057,6 +1063,14 @@ + port_cleanup(p_sess); + pasv_cleanup(p_sess); + vsf_sysutil_close(new_file_fd); ++ if (is_unique && uniq_rename) ++ /* NOTE - might overwrite destination file. Not a concern because the same ++ * could be accomplished with DELE. ++ */ ++ { ++ printf("I'm here\n");//vsf_cmdio_write(p_sess, FTP_TRANSFEROK, "IM HERE."); ++ str_rename(p_filename, &p_sess->ftp_arg_str); ++ } + } + + static void +@@ -1477,7 +1491,7 @@ + static void + handle_appe(struct vsf_session* p_sess) + { +- handle_upload_common(p_sess, 1, 0); ++ handle_upload_common(p_sess, 1, 0, 0); + } + + static void +@@ -1655,7 +1669,7 @@ + static void + handle_stou(struct vsf_session* p_sess) + { +- handle_upload_common(p_sess, 0, 1); ++ handle_upload_common(p_sess, 0, 1, 0); + } + + static void +@@ -1804,4 +1818,3 @@ + } + } + } +- diff --git a/vsftpd.spec b/vsftpd.spec index fa332d9..3ed3e97 100644 --- a/vsftpd.spec +++ b/vsftpd.spec @@ -3,7 +3,7 @@ Summary: vsftpd - Very Secure Ftp Daemon Name: vsftpd Version: 2.0.5 -Release: 12%{?dist} +Release: 13%{?dist} License: GPL Group: System Environment/Daemons URL: http://vsftpd.beasts.org/ @@ -39,6 +39,7 @@ Patch23: vsftpd-2.0.4-filter.patch 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 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %if %{tcp_wrappers} @@ -92,6 +93,7 @@ cp %{SOURCE1} . %patch24 -p1 -b .file_stat %patch25 -p1 %patch26 -p1 -b .bind_denied +%patch27 -p1 -b .uniq_rename %build %ifarch s390x @@ -150,6 +152,10 @@ fi /var/ftp %changelog +* Fri Jan 19 2007 Maros Barabas - 2.0.5-13 +- add lost patch: don't die when no user config file is present +- Resolves #166986 + * Thu Jan 18 2007 Radek Vokál - 2.0.5-12 - add dist tag - add buildrequires tcp_wrappers-devel