diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch')
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch b/nixpkgs/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch new file mode 100644 index 000000000000..59666ffbad5a --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch @@ -0,0 +1,53 @@ +diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c +index 296618686..96343eeb7 100644 +--- a/lib/commands/toolcontext.c ++++ b/lib/commands/toolcontext.c +@@ -1619,7 +1619,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd, + /* 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 +@@ -2006,7 +2006,7 @@ void destroy_toolcontext(struct cmd_context *cmd) + + 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) && +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index d97ff5720..bbbda82bd 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -3342,7 +3342,7 @@ static int _check_standard_fds(void) + 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 +@@ -3352,7 +3352,7 @@ static int _check_standard_fds(void) + } + + 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 */ +@@ -3360,7 +3360,7 @@ static int _check_standard_fds(void) + } + + 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; |