Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 403278 Details for
Bug 549506
sys-fs/lvm2: fails to compile against sys-libs/musl
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix stdio usage
lvm2-fix-stdio-usage.patch (text/plain), 3.58 KB, created by
Fredric Johansson
on 2015-05-14 22:55:57 UTC
(
hide
)
Description:
Fix stdio usage
Filename:
MIME Type:
Creator:
Fredric Johansson
Created:
2015-05-14 22:55:57 UTC
Size:
3.58 KB
patch
obsolete
>--- LVM2.2.02.103.orig/lib/commands/toolcontext.c >+++ LVM2.2.02.103/lib/commands/toolcontext.c >@@ -1336,7 +1336,10 @@ > /* > * Close and reopen stream on file descriptor fd. > */ >-static int _reopen_stream(FILE *stream, int fd, const char *mode, const char *name, FILE **new_stream) >+#ifdef __GLIBC__ >+#define _reopen_stream(stream, fd, mode, name) __reopen_stream(stream, fd, mode, name, &stream) >+ >+static int __reopen_stream(FILE *stream, int fd, const char *mode, const char *name, FILE **new_stream) > { > int fd_copy, new_fd; > >@@ -1363,6 +1366,9 @@ > > return 1; > } >+#else >+#define _reopen_stream(stream, fd, mode, name) (freopen(NULL, mode, stream) != NULL) >+#endif > > /* Entry point */ > struct cmd_context *create_toolcontext(unsigned is_long_lived, >@@ -1371,7 +1377,6 @@ > unsigned threaded) > { > struct cmd_context *cmd; >- FILE *new_stream; > int flags; > > #ifdef M_MMAP_MAX >@@ -1421,9 +1426,8 @@ > 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, STDIN_FILENO, "r", "stdin")) > goto_out; >- stdin = new_stream; > if (setvbuf(stdin, cmd->linebuffer, _IOLBF, linebuffer_size)) { > log_sys_error("setvbuf", ""); > goto out; >@@ -1433,9 +1437,8 @@ > 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, STDOUT_FILENO, "w", "stdout")) > goto_out; >- stdout = new_stream; > if (setvbuf(stdout, cmd->linebuffer + linebuffer_size, > _IOLBF, linebuffer_size)) { > log_sys_error("setvbuf", ""); >@@ -1715,7 +1718,6 @@ > void destroy_toolcontext(struct cmd_context *cmd) > { > struct dm_config_tree *cft_cmdline; >- FILE *new_stream; > int flags; > > if (cmd->dump_filter && cmd->filter && cmd->filter->dump && >@@ -1752,8 +1754,7 @@ > 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; >+ if (_reopen_stream(stdin, STDIN_FILENO, "r", "stdin")) { > setlinebuf(stdin); > } else > cmd->linebuffer = NULL; /* Leave buffer in place (deliberate leak) */ >@@ -1762,8 +1763,7 @@ > 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; >+ if (_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout")) { > setlinebuf(stdout); > } else > cmd->linebuffer = NULL; /* Leave buffer in place (deliberate leak) */ >--- LVM2.2.02.103.orig/tools/lvmcmdline.c >+++ LVM2.2.02.103/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;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 549506
: 403278 |
403280
|
403282