crux-musl

Unnamed repository; edit this file 'description' to name the repository.
git clone https://codeberg.org/emmett1/crux-musl
Log | Files | Refs | README | LICENSE

fix-stdio-usage.patch (2080B)


      1 diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
      2 index 60739af..8b3fdf7 100644
      3 --- a/lib/commands/toolcontext.c
      4 +++ b/lib/commands/toolcontext.c
      5 @@ -1661,6 +1661,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
      6  	reset_lvm_errno(1);
      7  
      8  	/* Set in/out stream buffering before glibc */
      9 +#ifdef __GLIBC__
     10  	if (set_buffering
     11  	    && !cmd->running_on_valgrind /* Skipping within valgrind execution. */
     12  #ifdef SYS_gettid
     13 @@ -1704,6 +1705,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
     14  	} else if (!set_buffering)
     15  		/* Without buffering, must not use stdin/stdout */
     16  		init_silent(1);
     17 +#endif
     18  
     19  	/*
     20  	 * Environment variable LVM_SYSTEM_DIR overrides this below.
     21 @@ -2038,6 +2040,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
     22  	if (cmd->cft_def_hash)
     23  		dm_hash_destroy(cmd->cft_def_hash);
     24  
     25 +#ifdef __GLIBC__
     26  	if (!cmd->running_on_valgrind && cmd->linebuffer) {
     27  		int flags;
     28  		/* Reset stream buffering to defaults */
     29 @@ -2061,6 +2064,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
     30  
     31  		free(cmd->linebuffer);
     32  	}
     33 +#endif
     34  
     35  	destroy_config_context(cmd);
     36  
     37 diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
     38 index 7209ebd..778c8c0 100644
     39 --- a/tools/lvmcmdline.c
     40 +++ b/tools/lvmcmdline.c
     41 @@ -3378,7 +3378,7 @@ static int _check_standard_fds(void)
     42  	int err = is_valid_fd(STDERR_FILENO);
     43  
     44  	if (!is_valid_fd(STDIN_FILENO) &&
     45 -	    !(stdin = fopen(_PATH_DEVNULL, "r"))) {
     46 +	    !freopen(_PATH_DEVNULL, "r", stdin)) {
     47  		if (err)
     48  			perror("stdin stream open");
     49  		else
     50 @@ -3388,7 +3388,7 @@ static int _check_standard_fds(void)
     51  	}
     52  
     53  	if (!is_valid_fd(STDOUT_FILENO) &&
     54 -	    !(stdout = fopen(_PATH_DEVNULL, "w"))) {
     55 +	    !freopen(_PATH_DEVNULL, "w", stdout)) {
     56  		if (err)
     57  			perror("stdout stream open");
     58  		/* else no stdout */
     59 @@ -3396,7 +3396,7 @@ static int _check_standard_fds(void)
     60  	}
     61  
     62  	if (!is_valid_fd(STDERR_FILENO) &&
     63 -	    !(stderr = fopen(_PATH_DEVNULL, "w"))) {
     64 +	    !freopen(_PATH_DEVNULL, "w", stderr)) {
     65  		printf("stderr stream open: %s\n",
     66  		       strerror(errno));
     67  		return 0;