diff options
author | dtucker@openbsd.org <dtucker@openbsd.org> | 2020-01-23 07:10:22 +0000 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2020-01-23 18:51:25 +1100 |
commit | 3bf2a6ac791d64046a537335a0f1d5e43579c5ad (patch) | |
tree | 76fcc0f1be306541c074be4aed3aca66023f0962 /session.c | |
parent | e027c044c796f3a01081a91bee55741204283f28 (diff) |
upstream: Replace all calls to signal(2) with a wrapper around
sigaction(2). This wrapper blocks all other signals during the handler
preventing races between handlers, and sets SA_RESTART which should reduce
the potential for short read/write operations.
OpenBSD-Commit-ID: 5e047663fd77a40d7b07bdabe68529df51fd2519
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: session.c,v 1.317 2019/11/13 04:47:52 deraadt Exp $ */ | 1 | /* $OpenBSD: session.c,v 1.318 2020/01/23 07:10:22 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
4 | * All rights reserved | 4 | * All rights reserved |
@@ -1642,7 +1642,7 @@ do_child(struct ssh *ssh, Session *s, const char *command) | |||
1642 | do_rc_files(ssh, s, shell); | 1642 | do_rc_files(ssh, s, shell); |
1643 | 1643 | ||
1644 | /* restore SIGPIPE for child */ | 1644 | /* restore SIGPIPE for child */ |
1645 | signal(SIGPIPE, SIG_DFL); | 1645 | ssh_signal(SIGPIPE, SIG_DFL); |
1646 | 1646 | ||
1647 | if (s->is_subsystem == SUBSYSTEM_INT_SFTP_ERROR) { | 1647 | if (s->is_subsystem == SUBSYSTEM_INT_SFTP_ERROR) { |
1648 | error("Connection from %s: refusing non-sftp session", | 1648 | error("Connection from %s: refusing non-sftp session", |