summaryrefslogtreecommitdiff
path: root/repo/util/lvm2/fix-stdio-usage.patch
diff options
context:
space:
mode:
Diffstat (limited to 'repo/util/lvm2/fix-stdio-usage.patch')
-rw-r--r--repo/util/lvm2/fix-stdio-usage.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/repo/util/lvm2/fix-stdio-usage.patch b/repo/util/lvm2/fix-stdio-usage.patch
new file mode 100644
index 0000000..5ac99fd
--- /dev/null
+++ b/repo/util/lvm2/fix-stdio-usage.patch
@@ -0,0 +1,49 @@
+--- ./tools/lvmcmdline.c
++++ ./tools/lvmcmdline.c
+@@ -1252,7 +1252,7 @@
+ int err = is_valid_fd(STDERR_FILENO);
+
+ if (!is_valid_fd(STDIN_FILENO) &&
+- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
++ !freopen(_PATH_DEVNULL, "r", stdin)) {
+ if (err)
+ perror("stdin stream open");
+ else
+@@ -1262,7 +1262,7 @@
+ }
+
+ if (!is_valid_fd(STDOUT_FILENO) &&
+- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
++ !freopen(_PATH_DEVNULL, "w", stdout)) {
+ if (err)
+ perror("stdout stream open");
+ /* else no stdout */
+@@ -1270,7 +1270,7 @@
+ }
+
+ if (!is_valid_fd(STDERR_FILENO) &&
+- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
++ !freopen(_PATH_DEVNULL, "w", stderr)) {
+ printf("stderr stream open: %s\n",
+ strerror(errno));
+ return 0;
+--- ./lib/commands/toolcontext.c
++++ ./lib/commands/toolcontext.c
+@@ -1869,7 +1869,7 @@
+ /* FIXME Make this configurable? */
+ reset_lvm_errno(1);
+
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ /* Set in/out stream buffering before glibc */
+ if (set_buffering
+ #ifdef SYS_gettid
+@@ -2274,7 +2274,7 @@
+
+ if (cmd->pending_delete_mem)
+ dm_pool_destroy(cmd->pending_delete_mem);
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ if (cmd->linebuffer) {
+ /* Reset stream buffering to defaults */
+ if (is_valid_fd(STDIN_FILENO) &&