diff options
| author | Timo Weingärtner <timo@tiwe.de> | 2021-04-27 12:41:34 +0200 |
|---|---|---|
| committer | Timo Weingärtner <timo@tiwe.de> | 2026-03-07 22:25:16 +0100 |
| commit | daf69a87ec7d01673362c1c9bbdbcb61c71ab83e (patch) | |
| tree | e0c0d0c332c716aa1745c0cf86552a9c80a122de | |
| parent | fcdfa65579518c2d9d9fa74231455a08a0e783f3 (diff) | |
| download | ssh-agent-filter-daf69a87ec7d01673362c1c9bbdbcb61c71ab83e.tar.gz | |
s/arm/arm_exceptions/
| -rw-r--r-- | ssh-agent-filter.C | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/ssh-agent-filter.C b/ssh-agent-filter.C index d22ced1..252e017 100644 --- a/ssh-agent-filter.C +++ b/ssh-agent-filter.C @@ -135,7 +135,7 @@ int make_cloexec_socket (int const address_family, int const type, int const pro return sock; } -void arm (std::ios & stream) { +void arm_exceptions (std::ios & stream) { stream.exceptions(stream.badbit | stream.failbit); } @@ -184,7 +184,7 @@ int make_listen_sock () { rfc4251::string ask_upstream_agent (rfc4251::string const & request) { io::stream<io::file_descriptor> agent{make_upstream_agent_conn(), io::close_handle}; - arm(agent); + arm_exceptions(agent); agent << request; return rfc4251::string{agent}; @@ -239,7 +239,7 @@ void parse_cmdline (int const argc, char const * const * const argv) { void setup_filters () { auto const answer = ask_upstream_agent({SSH2_AGENTC_REQUEST_IDENTITIES}); io::stream<io::array_source> answer_iss{answer.data(), answer.size()}; - arm(answer_iss); + arm_exceptions(answer_iss); rfc4251::byte const resp_code{answer_iss}; if (resp_code != SSH2_AGENT_IDENTITIES_ANSWER) throw runtime_error{"unexpected answer from ssh-agent"}; @@ -326,7 +326,7 @@ bool confirm (string const & question) { std::optional<string> dissect_auth_data_ssh_cert (rfc4251::string const & data) try { io::stream<io::array_source> datastream{data.data(), data.size()}; - arm(datastream); + arm_exceptions(datastream); string request_description{}; // Format specified in https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?annotate=1.13 @@ -386,7 +386,7 @@ std::optional<string> dissect_auth_data_ssh_cert (rfc4251::string const & data) std::optional<string> dissect_auth_data_ssh (rfc4251::string const & data) try { io::stream<io::array_source> datastream{data.data(), data.size()}; - arm(datastream); + arm_exceptions(datastream); string request_description{}; // Format specified in RFC 4252 Section 7 @@ -404,7 +404,7 @@ std::optional<string> dissect_auth_data_ssh (rfc4251::string const & data) try { if (string{servicename} == "pam_ssh_agent_auth") try { clog << base64_encode(session_identifier) << endl; io::stream<io::array_source> idstream{session_identifier.data(), session_identifier.size()}; - arm(idstream); + arm_exceptions(idstream); rfc4251::uint32 const type{idstream}; if (type == 101) { @@ -427,7 +427,7 @@ std::optional<string> dissect_auth_data_ssh (rfc4251::string const & data) try { additional += "' in '" + string{pwd}; io::stream<io::array_source> actionstream{action.data(), action.size()}; - arm(actionstream); + arm_exceptions(actionstream); rfc4251::uint32 const argc{actionstream}; @@ -473,8 +473,8 @@ rfc4251::string handle_request (rfc4251::string const & r) { io::stream<io::array_source> request{r.data(), r.size()}; rfc4251::string ret; io::stream<io::back_insert_device<vector<char>>> answer{ret.buf}; - arm(request); - arm(answer); + arm_exceptions(request); + arm_exceptions(answer); rfc4251::byte const request_code{request}; switch (request_code) { case SSH2_AGENTC_REQUEST_IDENTITIES: @@ -483,7 +483,7 @@ rfc4251::string handle_request (rfc4251::string const & r) { // temp to test key filtering when signing //return agent_answer; io::stream<io::array_source> agent_answer_iss{agent_answer.data(), agent_answer.size()}; - arm(agent_answer_iss); + arm_exceptions(agent_answer_iss); rfc4251::byte const answer_code{agent_answer_iss}; rfc4251::uint32 const keycount{agent_answer_iss}; if (answer_code != SSH2_AGENT_IDENTITIES_ANSWER) @@ -563,7 +563,7 @@ void handle_client (int const sock) try { // fails with ESPIPE and causes an exception io::stream<io::file_descriptor_source> client_in{sock, io::close_handle}; io::stream<io::file_descriptor_sink> client_out{sock, io::never_close_handle}; - arm(client_out); + arm_exceptions(client_out); for (;;) client_out << handle_request(rfc4251::string{client_in}) << flush; |
