diff options
-rw-r--r-- | package/lvm/Makefile | 3 | ||||
-rw-r--r-- | package/lvm/patches/patch-lib_commands_toolcontext_c | 74 | ||||
-rw-r--r-- | package/lvm/patches/patch-tools_lvmcmdline_c | 34 |
3 files changed, 110 insertions, 1 deletions
diff --git a/package/lvm/Makefile b/package/lvm/Makefile index aa3f5eca8..6355f191a 100644 --- a/package/lvm/Makefile +++ b/package/lvm/Makefile @@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk PKG_NAME:= lvm PKG_VERSION:= 2.02.106 -PKG_RELEASE:= 2 +PKG_RELEASE:= 3 PKG_MD5SUM:= 77f84279fb649b3dc4edad1c6d1a1b0e PKG_DESCR:= logical volume management PKG_SECTION:= fs @@ -39,6 +39,7 @@ CONFIGURE_ARGS+= --with-user="" --with-group="" \ --with-optimisation="" \ --disable-testing \ --with-lvm1=none +CONFIGURE_ENV+= ac_cv_flag_HAVE_PIE=no lvm-install: ${INSTALL_DIR} ${IDIR_LVM}/usr/sbin diff --git a/package/lvm/patches/patch-lib_commands_toolcontext_c b/package/lvm/patches/patch-lib_commands_toolcontext_c new file mode 100644 index 000000000..397576c9b --- /dev/null +++ b/package/lvm/patches/patch-lib_commands_toolcontext_c @@ -0,0 +1,74 @@ +--- LVM2.2.02.106.orig/lib/commands/toolcontext.c 2014-04-10 17:38:44.000000000 +0200 ++++ LVM2.2.02.106/lib/commands/toolcontext.c 2014-05-29 17:55:05.101305501 +0200 +@@ -1334,6 +1334,8 @@ struct cmd_context *create_toolcontext(u + { + struct cmd_context *cmd; + FILE *new_stream; ++ FILE *stdin_stream = stdin; ++ FILE *stdout_stream = stdout; + int flags; + + #ifdef M_MMAP_MAX +@@ -1383,10 +1385,10 @@ struct cmd_context *create_toolcontext(u + if (is_valid_fd(STDIN_FILENO) && + ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) && + (flags & O_ACCMODE) != O_WRONLY) { +- if (!_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", &new_stream)) ++ if (!_reopen_stream(stdin_stream, STDIN_FILENO, "r", "stdin", &new_stream)) + goto_out; +- stdin = new_stream; +- if (setvbuf(stdin, cmd->linebuffer, _IOLBF, linebuffer_size)) { ++ stdin_stream = new_stream; ++ if (setvbuf(stdin_stream, cmd->linebuffer, _IOLBF, linebuffer_size)) { + log_sys_error("setvbuf", ""); + goto out; + } +@@ -1395,10 +1397,10 @@ struct cmd_context *create_toolcontext(u + if (is_valid_fd(STDOUT_FILENO) && + ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) && + (flags & O_ACCMODE) != O_RDONLY) { +- if (!_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout", &new_stream)) ++ if (!_reopen_stream(stdout_stream, STDOUT_FILENO, "w", "stdout", &new_stream)) + goto_out; +- stdout = new_stream; +- if (setvbuf(stdout, cmd->linebuffer + linebuffer_size, ++ stdout_stream = new_stream; ++ if (setvbuf(stdout_stream, cmd->linebuffer + linebuffer_size, + _IOLBF, linebuffer_size)) { + log_sys_error("setvbuf", ""); + goto out; +@@ -1681,6 +1683,8 @@ void destroy_toolcontext(struct cmd_cont + { + struct dm_config_tree *cft_cmdline; + FILE *new_stream; ++ FILE *stdin_stream = stdin; ++ FILE *stdout_stream = stdout; + int flags; + + if (cmd->dump_filter && cmd->filter && cmd->filter->dump && +@@ -1717,9 +1721,9 @@ void destroy_toolcontext(struct cmd_cont + if (is_valid_fd(STDIN_FILENO) && + ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) && + (flags & O_ACCMODE) != O_WRONLY) { +- if (_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", &new_stream)) { +- stdin = new_stream; +- setlinebuf(stdin); ++ if (_reopen_stream(stdin_stream, STDIN_FILENO, "r", "stdin", &new_stream)) { ++ stdin_stream = new_stream; ++ setlinebuf(stdin_stream); + } else + cmd->linebuffer = NULL; /* Leave buffer in place (deliberate leak) */ + } +@@ -1727,9 +1731,9 @@ void destroy_toolcontext(struct cmd_cont + if (is_valid_fd(STDOUT_FILENO) && + ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) && + (flags & O_ACCMODE) != O_RDONLY) { +- if (_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout", &new_stream)) { +- stdout = new_stream; +- setlinebuf(stdout); ++ if (_reopen_stream(stdout_stream, STDOUT_FILENO, "w", "stdout", &new_stream)) { ++ stdout_stream = new_stream; ++ setlinebuf(stdout_stream); + } else + cmd->linebuffer = NULL; /* Leave buffer in place (deliberate leak) */ + } diff --git a/package/lvm/patches/patch-tools_lvmcmdline_c b/package/lvm/patches/patch-tools_lvmcmdline_c new file mode 100644 index 000000000..13124f32d --- /dev/null +++ b/package/lvm/patches/patch-tools_lvmcmdline_c @@ -0,0 +1,34 @@ +--- LVM2.2.02.106.orig/tools/lvmcmdline.c 2014-04-10 17:38:46.000000000 +0200 ++++ LVM2.2.02.106/tools/lvmcmdline.c 2014-05-29 16:57:14.221581766 +0200 +@@ -1252,9 +1252,12 @@ int lvm_split(char *str, int *argc, char + static int _check_standard_fds(void) + { + int err = is_valid_fd(STDERR_FILENO); ++ FILE *stdin_stream = stdin; ++ FILE *stdout_stream = stdout; ++ FILE *stderr_stream = stderr; + + if (!is_valid_fd(STDIN_FILENO) && +- !(stdin = fopen(_PATH_DEVNULL, "r"))) { ++ !(stdin_stream = fopen(_PATH_DEVNULL, "r"))) { + if (err) + perror("stdin stream open"); + else +@@ -1264,7 +1267,7 @@ static int _check_standard_fds(void) + } + + if (!is_valid_fd(STDOUT_FILENO) && +- !(stdout = fopen(_PATH_DEVNULL, "w"))) { ++ !(stdout_stream = fopen(_PATH_DEVNULL, "w"))) { + if (err) + perror("stdout stream open"); + /* else no stdout */ +@@ -1272,7 +1275,7 @@ static int _check_standard_fds(void) + } + + if (!is_valid_fd(STDERR_FILENO) && +- !(stderr = fopen(_PATH_DEVNULL, "w"))) { ++ !(stderr_stream = fopen(_PATH_DEVNULL, "w"))) { + printf("stderr stream open: %s\n", + strerror(errno)); + return 0; |