[packages/pure-ftpd] - rel 2; upstream pureftpd ignores config file if cmd line options are passed which totally broke ou

arekm arekm at pld-linux.org
Mon Oct 16 11:32:52 CEST 2017


commit f543dc078806a31fdaf4879693dc575c91f0eb6d
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Oct 16 11:32:44 2017 +0200

    - rel 2; upstream pureftpd ignores config file if cmd line options are passed which totally broke our init script; fix that by using fedora patch that allows cmd line and config file options to be used

 ...g-both-options-and-config-file-on-command.patch | 68 ++++++++++++++++++++++
 pure-ftpd.spec                                     |  5 +-
 2 files changed, 72 insertions(+), 1 deletion(-)
---
diff --git a/pure-ftpd.spec b/pure-ftpd.spec
index 4e04080..68c4749 100644
--- a/pure-ftpd.spec
+++ b/pure-ftpd.spec
@@ -9,7 +9,7 @@
 %bcond_without	tls		# disable SSL/TLS support
 %bcond_without	cap		# disable capabilities
 
-%define	rel	1
+%define	rel	2
 Summary:	Small, fast and secure FTP server
 Summary(pl.UTF-8):	Mały, szybki i bezpieczny serwer FTP
 Name:		pure-ftpd
@@ -30,6 +30,8 @@ Patch0:		%{name}-config.patch
 Patch1:		%{name}-allauth.patch
 Patch2:		%{name}-pure-pw_passwd.patch
 Patch3:		%{name}-mysql_config.patch
+# from Fedora
+Patch4:		0003-Allow-having-both-options-and-config-file-on-command.patch
 
 Patch7:		audit_cap.patch
 Patch8:		%{name}-apparmor.patch
@@ -108,6 +110,7 @@ Ten pakiet zawiera schemat Pure-FTPd pureftpd.schema dla openldapa.
 %patch0 -p0
 %patch1 -p1
 %patch3 -p1
+%patch4 -p1
 
 %patch7 -p1
 %patch8 -p1
diff --git a/0003-Allow-having-both-options-and-config-file-on-command.patch b/0003-Allow-having-both-options-and-config-file-on-command.patch
new file mode 100644
index 0000000..7eb99b2
--- /dev/null
+++ b/0003-Allow-having-both-options-and-config-file-on-command.patch
@@ -0,0 +1,68 @@
+From f5617a4de54c313580fe39562f0d32e5c95f5212 Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Thu, 14 Sep 2017 01:05:53 +0200
+Subject: [PATCH] Allow having both options and config file on command line
+
+---
+ src/ftpd.c       |  2 +-
+ src/simpleconf.c | 23 +++++++++++++++++++++--
+ 2 files changed, 22 insertions(+), 3 deletions(-)
+
+diff --git a/src/ftpd.c b/src/ftpd.c
+index c5edac5..b13afc0 100644
+--- a/src/ftpd.c
++++ b/src/ftpd.c
+@@ -5589,7 +5589,7 @@ int pureftpd_start(int argc, char *argv[], const char *home_directory_)
+ #endif
+ 
+ #ifndef MINIMAL
+-    if (argc == 2 && *argv[1] != '-' &&
++    if (argc >= 2 && *argv[1] != '-' &&
+         sc_build_command_line_from_file(argv[1], NULL, simpleconf_options,
+                                         (sizeof simpleconf_options) /
+                                         (sizeof simpleconf_options[0]),
+diff --git a/src/simpleconf.c b/src/simpleconf.c
+index f296f54..505aee1 100644
+--- a/src/simpleconf.c
++++ b/src/simpleconf.c
+@@ -674,9 +674,10 @@ sc_build_command_line_from_file(const char *file_name,
+ {
+     char **argv = NULL;
+     int    argc = 0;
++    char **argv_tmp = NULL;
++    char *arg = NULL;
++    int i;
+ 
+-    *argc_p = 0;
+-    *argv_p = NULL;
+     if ((argv = malloc(sizeof *argv)) == NULL ||
+         (app_name = strdup(app_name)) == NULL) {
+         sc_argv_free(argc, argv);
+@@ -689,6 +690,24 @@ sc_build_command_line_from_file(const char *file_name,
+         sc_argv_free(argc, argv);
+         return -1;
+     }
++
++    for (i = 2; i < *argc_p; ++i) {
++        ++argc;
++        arg = strdup((*argv_p)[i]);
++        if (arg == NULL) {
++            return -1;
++        }
++        if ((argv_tmp = realloc(argv, (sizeof arg) *
++            ((size_t) argc + 1))) == NULL) {
++            return -1;
++        }
++        argv = argv_tmp;
++        argv[argc - 1] = arg;
++    }
++    if (*argc_p > 2) {
++        argv[argc] = NULL;
++    }
++
+     *argc_p = argc;
+     *argv_p = argv;
+ 
+-- 
+2.9.5
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/pure-ftpd.git/commitdiff/f543dc078806a31fdaf4879693dc575c91f0eb6d



More information about the pld-cvs-commit mailing list