[proftpd] Update to 1.3.4c

Paul Howarth pghmcfc at fedoraproject.org
Thu Mar 7 14:17:07 UTC 2013


commit 744a63dfb6f7fe8defbcec7c2ba2488ffe9a9ffa
Author: Paul Howarth <paul at city-fan.org>
Date:   Thu Mar 7 14:16:09 2013 +0000

    Update to 1.3.4c
    
    - New upstream release 1.3.4c
      - Added Spanish translation
      - Fixed several mod_sftp issues, including SFTPPassPhraseProvider,
        handling of symlinks for REALPATH requests, and response code logging
      - Fixed symlink race for creating directories when UserOwner is in effect
      - Increased performance of FTP directory listings
    - Drop MySQL password patch, no longer needed
    - Drop upstreamed proftpd patch for CVE-2012-6095
    - Update patch for bug 3744 to apply against updated proftpd code

 .gitignore                                         |    4 +-
 proftpd-1.3.4a-bug3747.patch                       |  193 --------
 proftpd-1.3.4b-bug3841.patch                       |  511 --------------------
 ...a-bug3744.patch => proftpd-1.3.4c-bug3744.patch |   95 +---
 proftpd-1.3.4rc3-mysql-password.patch              |   25 -
 proftpd.spec                                       |   27 +-
 sources                                            |    2 +-
 7 files changed, 39 insertions(+), 818 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 70973b1..cb09e98 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-# master/f17/f16
-/proftpd-1.3.4b.tar.gz
+# master/f19/f18/f17
+/proftpd-1.3.4c.tar.gz
 /proftpd-mod-geoip-0.3.tar.gz
 /proftpd-mod-vroot-0.9.2.tar.gz
 /Test-Unit-0.14.tar.gz
diff --git a/proftpd-1.3.4a-bug3744.patch b/proftpd-1.3.4c-bug3744.patch
similarity index 79%
rename from proftpd-1.3.4a-bug3744.patch
rename to proftpd-1.3.4c-bug3744.patch
index dc7ecac..c9079e1 100644
--- a/proftpd-1.3.4a-bug3744.patch
+++ b/proftpd-1.3.4c-bug3744.patch
@@ -1,11 +1,6 @@
-Index: modules/mod_ls.c
-===================================================================
-RCS file: /cvsroot/proftp/proftpd/modules/mod_ls.c,v
-retrieving revision 1.187
-diff -u -r1.187 mod_ls.c
---- modules/mod_ls.c	5 Nov 2011 23:01:58 -0000	1.187
-+++ modules/mod_ls.c	1 Feb 2012 18:57:20 -0000
-@@ -81,6 +81,7 @@
+--- modules/mod_ls.c
++++ modules/mod_ls.c
+@@ -81,6 +81,7 @@ static struct list_limit_rec list_nfiles
  
  /* ls options */
  static int
@@ -13,7 +8,7 @@ diff -u -r1.187 mod_ls.c
      opt_a = 0,
      opt_A = 0,
      opt_B = 0,
-@@ -395,7 +396,6 @@
+@@ -419,7 +420,6 @@ static int listfile(cmd_rec *cmd, pool *
      p = cmd->tmp_pool;
  
    if (pr_fsio_lstat(name, &st) == 0) {
@@ -21,7 +16,7 @@ diff -u -r1.187 mod_ls.c
      char *display_name = NULL;
  
      suffix[0] = suffix[1] = '\0';
-@@ -493,21 +493,24 @@
+@@ -531,21 +531,24 @@ static int listfile(cmd_rec *cmd, pool *
          break;
      }
  
@@ -51,7 +46,7 @@ diff -u -r1.187 mod_ls.c
      }
  
      if (opt_l) {
-@@ -576,32 +579,38 @@
+@@ -614,32 +617,38 @@ static int listfile(cmd_rec *cmd, pool *
          m[2] = (mode & S_IWUSR) ? 'w' : '-';
          m[1] = (mode & S_IRUSR) ? 'r' : '-';
  
@@ -106,7 +101,7 @@ diff -u -r1.187 mod_ls.c
          }
  
          nameline[sizeof(nameline)-1] = '\0';
-@@ -611,40 +620,45 @@
+@@ -649,40 +658,45 @@ static int listfile(cmd_rec *cmd, pool *
  
            suffix[0] = '\0';
            if (opt_F && pr_fsio_stat(name, &st) == 0) {
@@ -160,7 +155,7 @@ diff -u -r1.187 mod_ls.c
      }
    }
  
-@@ -1302,6 +1316,7 @@
+@@ -1340,6 +1354,7 @@ static void parse_list_opts(char **opt,
        switch (**opt) {
          case '1':
            if (strcmp(session.curr_cmd, C_STAT) != 0) {
@@ -168,7 +163,7 @@ diff -u -r1.187 mod_ls.c
              opt_l = opt_C = 0;
            }
            break;
-@@ -1354,6 +1369,7 @@
+@@ -1392,6 +1407,7 @@ static void parse_list_opts(char **opt,
            if (strcmp(session.curr_cmd, C_NLST) != 0) {
              opt_l = 1;
              opt_C = 0;
@@ -176,7 +171,7 @@ diff -u -r1.187 mod_ls.c
            }
            break;
  
-@@ -1422,7 +1438,7 @@
+@@ -1460,7 +1476,7 @@ static void parse_list_opts(char **opt,
      while ((*opt)++ && isalnum((int) **opt)) {
        switch (**opt) {
          case '1':
@@ -185,7 +180,7 @@ diff -u -r1.187 mod_ls.c
            break;
  
          case 'A':
-@@ -1571,8 +1587,8 @@
+@@ -1609,8 +1625,8 @@ static int dolist(cmd_rec *cmd, const ch
    ls_curtime = time(NULL);
  
    if (clearflags) {
@@ -196,19 +191,7 @@ diff -u -r1.187 mod_ls.c
    }
  
    if (have_options(cmd, arg)) {
-@@ -1671,8 +1687,10 @@
- 
-     /* Open data connection */
-     if (!opt_STAT) {
--      if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0)
-+      if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0) {
-         return -1;
-+      }
-+
-       session.sf_flags |= SF_ASCII_OVERRIDE;
-     }
- 
-@@ -1705,7 +1723,6 @@
+@@ -1745,7 +1761,6 @@ static int dolist(cmd_rec *cmd, const ch
        skiparg = TRUE;
  
      } else {
@@ -216,7 +199,7 @@ diff -u -r1.187 mod_ls.c
        skiparg = FALSE;
  
        if (use_globbing &&
-@@ -1945,6 +1962,10 @@
+@@ -1987,6 +2002,10 @@ static int nlstfile(cmd_rec *cmd, const
      return -1;
    }
  
@@ -227,7 +210,7 @@ diff -u -r1.187 mod_ls.c
    if (dir_hide_file(file))
      return 1;
  
-@@ -1970,6 +1991,25 @@
+@@ -2012,6 +2031,25 @@ static int nlstfile(cmd_rec *cmd, const
    }
  #endif /* PR_USE_NLS */
  
@@ -251,9 +234,9 @@ diff -u -r1.187 mod_ls.c
 +  }
 +
    /* Be sure to flush the output */
-   res = sendline(0, "%s\n", pr_fs_encode_path(cmd->tmp_pool, display_name));
+   res = sendline(0, "%s\r\n", pr_fs_encode_path(cmd->tmp_pool, display_name));
    if (res < 0)
-@@ -2098,8 +2138,16 @@
+@@ -2140,8 +2178,16 @@ static int nlstdir(cmd_rec *cmd, const c
          continue;
  
        if (!curdir) {
@@ -270,9 +253,9 @@ diff -u -r1.187 mod_ls.c
 +            pdircat(cmd->tmp_pool, dir, p, NULL));
 +        }
  
-         if (sendline(0, "%s\n", str) < 0) {
+         if (sendline(0, "%s\r\n", str) < 0) {
            count = -1;
-@@ -2204,26 +2252,32 @@
+@@ -2246,26 +2292,32 @@ MODRET genericlist(cmd_rec *cmd) {
    fakeuser = get_param_ptr(CURRENT_CONF, "DirFakeUser", FALSE);
  
    /* Check for a configured "logged in user" DirFakeUser. */
@@ -309,7 +292,7 @@ diff -u -r1.187 mod_ls.c
  
    res = dolist(cmd, pr_fs_decode_path(cmd->tmp_pool, cmd->arg), TRUE);
  
-@@ -2231,8 +2285,9 @@
+@@ -2273,8 +2325,9 @@ MODRET genericlist(cmd_rec *cmd) {
      pr_data_abort(0, 0);
      res = -1;
  
@@ -320,7 +303,7 @@ diff -u -r1.187 mod_ls.c
  
    opt_l = 0;
  
-@@ -2415,8 +2470,9 @@
+@@ -2457,8 +2510,9 @@ MODRET ls_nlst(cmd_rec *cmd) {
    list_nfiles.logged = list_ndirs.logged = list_ndepth.logged = FALSE;
  
    tmp = get_param_ptr(TOPLEVEL_CONF, "ShowSymlinks", FALSE);
@@ -331,7 +314,7 @@ diff -u -r1.187 mod_ls.c
  
    target = cmd->argc == 1 ? "." :
      pr_fs_decode_path(cmd->tmp_pool, cmd->arg);
-@@ -2444,8 +2500,8 @@
+@@ -2486,8 +2540,8 @@ MODRET ls_nlst(cmd_rec *cmd) {
    }
  
    /* Clear the listing option flags. */
@@ -342,39 +325,3 @@ diff -u -r1.187 mod_ls.c
  
    if (have_options(cmd, target)) {
      if (!list_strict_opts) {
-@@ -2602,8 +2658,10 @@
- 
-         } else {
-           if (list_flags & LS_FL_NO_ERROR_IF_ABSENT) {
--            if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0)
-+            if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0) {
-               return PR_ERROR(cmd);
-+            }
-+
-             session.sf_flags |= SF_ASCII_OVERRIDE;
-             pr_response_add(R_226, _("Transfer complete"));
-             ls_done(cmd);
-@@ -2617,8 +2675,10 @@
- 
-       } else {
-         if (list_flags & LS_FL_NO_ERROR_IF_ABSENT) {
--          if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0)
-+          if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0) {
-             return PR_ERROR(cmd);
-+          }
-+
-           session.sf_flags |= SF_ASCII_OVERRIDE;
-           pr_response_add(R_226, _("Transfer complete"));
-           ls_done(cmd);
-@@ -2631,8 +2691,10 @@
-       }
-     }
- 
--    if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0)
-+    if (pr_data_open(NULL, "file list", PR_NETIO_IO_WR, 0) < 0) {
-       return PR_ERROR(cmd);
-+    }
-+
-     session.sf_flags |= SF_ASCII_OVERRIDE;
- 
-     /* Iterate through each matching entry */
diff --git a/proftpd.spec b/proftpd.spec
index 1962100..f8697f1 100644
--- a/proftpd.spec
+++ b/proftpd.spec
@@ -41,11 +41,11 @@
 %define _hardened_build 1
 
 #global prever rc3
-%global rpmrel 6
+%global rpmrel 1
 
 Summary:		Flexible, stable and highly-configurable FTP server
 Name:			proftpd
-Version:		1.3.4b
+Version:		1.3.4c
 Release:		%{?prever:0.}%{rpmrel}%{?prever:.%{prever}}%{?dist}
 License:		GPLv2+
 Group:			System Environment/Daemons
@@ -62,15 +62,13 @@ Source11:		http://www.castaglia.org/proftpd/modules/proftpd-mod-geoip-0.3.tar.gz
 # (they are disabled by default); it is not included as part of the built package and should therefore
 # not fall foul of the rules against library bundling
 Source13:		http://search.cpan.org/CPAN/authors/id/C/CL/CLEMBURG/Test-Unit-0.14.tar.gz
-Patch1:			proftpd-1.3.4rc3-mysql-password.patch
 Patch2:			proftpd.conf-no-memcached.patch
 Patch4:			proftpd-1.3.4rc1-mod_vroot-test.patch
 Patch5:			proftpd-1.3.4-utf8.patch
 Patch14:		proftpd-1.3.4a-bug3720.patch
-Patch23:		proftpd-1.3.4a-bug3744.patch
+Patch23:		proftpd-1.3.4c-bug3744.patch
 Patch24:		proftpd-1.3.4a-bug3745.patch
 Patch25:		proftpd-1.3.4a-bug3746.patch
-Patch26:		proftpd-1.3.4b-bug3841.patch
 Patch27:		proftpd-mod-vroot-0.9.2-bug3841.patch
 BuildRoot:		%{_tmppath}/%{name}-%{version}-%{release}-root
 Requires(preun):	coreutils, findutils
@@ -207,11 +205,6 @@ cp -p mod_geoip/mod_geoip.html doc/contrib/
 # Copy default config file into place
 cp -p %{SOURCE1} proftpd.conf
 
-# Use my_make_scrambled_password rather than the deprecated
-# make_scrambled_password, which isn't exported from Fedora's MySQL
-# in F-15 onwards (#718327, upstream bug 3669)
-%patch1 -p1 -b .mypasswd
-
 # If we're running the full test suite, include the mod_vroot test
 %patch4 -p1 -b .test_vroot
 
@@ -236,7 +229,6 @@ cp -p %{SOURCE1} proftpd.conf
 
 # Fix possible symlink race when applying UserOwner to newly created directory
 # http://bugs.proftpd.org/show_bug.cgi?id=3841
-%patch26
 %patch27
 
 # Avoid documentation name conflicts
@@ -535,7 +527,18 @@ fi
 %{_mandir}/man1/ftpwho.1*
 
 %changelog
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3.4b-6
+* Thu Mar  7 2013 Paul Howarth <paul at city-fan.org> 1.3.4c-1
+- Update to 1.3.4c
+  - Added Spanish translation
+  - Fixed several mod_sftp issues, including SFTPPassPhraseProvider,
+    handling of symlinks for REALPATH requests, and response code logging
+  - Fixed symlink race for creating directories when UserOwner is in effect
+  - Increased performance of FTP directory listings
+- Drop MySQL password patch, no longer needed
+- Drop upstreamed proftpd patch for CVE-2012-6095
+- Update patch for bug 3744 to apply against updated proftpd code
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> 1.3.4b-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
 
 * Wed Jan 16 2013 Paul Howarth <paul at city-fan.org> 1.3.4b-5
diff --git a/sources b/sources
index a419287..c65bd46 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-0871e0b93c9c3c88ca950b6d9a04aed2  proftpd-1.3.4b.tar.gz
+65f61e953bea249f8377e681594143a5  proftpd-1.3.4c.tar.gz
 cc0e479406436e474ca7d59994fa73bb  proftpd-mod-geoip-0.3.tar.gz
 6db495b25e9da2ba0c901e7c44e119bc  proftpd-mod-vroot-0.9.2.tar.gz
 ad574713bcd00f62883ff2f9a84eec1f  Test-Unit-0.14.tar.gz


More information about the scm-commits mailing list