View | Details | Raw Unified | Return to bug 1988 | Differences between
and this patch

Collapse All | Expand All

(-)a/log.c (-1 / +1 lines)
Lines 308-314 log_change_level(LogLevel new_log_level) Link Here
308
int
308
int
309
log_is_on_stderr(void)
309
log_is_on_stderr(void)
310
{
310
{
311
	return log_on_stderr;
311
	return log_on_stderr && log_stderr_fd == STDERR_FILENO;
312
}
312
}
313
313
314
/* redirect what would usually get written to stderr to specified file */
314
/* redirect what would usually get written to stderr to specified file */
(-)a/ssh.c (-2 / +4 lines)
Lines 1346-1352 static void Link Here
1346
control_persist_detach(void)
1346
control_persist_detach(void)
1347
{
1347
{
1348
	pid_t pid;
1348
	pid_t pid;
1349
	int devnull;
1349
	int devnull, keep_stderr;
1350
1350
1351
	debug("%s: backgrounding master process", __func__);
1351
	debug("%s: backgrounding master process", __func__);
1352
1352
Lines 1377-1384 control_persist_detach(void) Link Here
1377
		error("%s: open(\"/dev/null\"): %s", __func__,
1377
		error("%s: open(\"/dev/null\"): %s", __func__,
1378
		    strerror(errno));
1378
		    strerror(errno));
1379
	} else {
1379
	} else {
1380
		keep_stderr = log_is_on_stderr() && debug_flag;
1380
		if (dup2(devnull, STDIN_FILENO) == -1 ||
1381
		if (dup2(devnull, STDIN_FILENO) == -1 ||
1381
		    dup2(devnull, STDOUT_FILENO) == -1)
1382
		    dup2(devnull, STDOUT_FILENO) == -1 ||
1383
		    (!keep_stderr && dup2(devnull, STDERR_FILENO) == -1))
1382
			error("%s: dup2: %s", __func__, strerror(errno));
1384
			error("%s: dup2: %s", __func__, strerror(errno));
1383
		if (devnull > STDERR_FILENO)
1385
		if (devnull > STDERR_FILENO)
1384
			close(devnull);
1386
			close(devnull);

Return to bug 1988