aboutsummaryrefslogtreecommitdiff
path: root/ssh-agent-filter.C
diff options
context:
space:
mode:
Diffstat (limited to 'ssh-agent-filter.C')
-rw-r--r--ssh-agent-filter.C20
1 files changed, 10 insertions, 10 deletions
diff --git a/ssh-agent-filter.C b/ssh-agent-filter.C
index c658b62..cede337 100644
--- a/ssh-agent-filter.C
+++ b/ssh-agent-filter.C
@@ -108,17 +108,17 @@ string md5_hex (string const & s) {
struct md5_ctx ctx;
md5_init(&ctx);
md5_update(&ctx, s.size(), reinterpret_cast<uint8_t const *>(s.data()));
- uint8_t bin[MD5_DIGEST_SIZE];
- md5_digest(&ctx, MD5_DIGEST_SIZE, bin);
- char hex[BASE16_ENCODE_LENGTH(MD5_DIGEST_SIZE)];
- base16_encode_update(hex, MD5_DIGEST_SIZE, bin);
- return {hex, sizeof(hex)};
+ std::array<uint8_t, MD5_DIGEST_SIZE> bin;
+ md5_digest(&ctx, MD5_DIGEST_SIZE, bin.data());
+ std::array<char, BASE16_ENCODE_LENGTH(MD5_DIGEST_SIZE)> hex;
+ base16_encode_update(hex.data(), MD5_DIGEST_SIZE, bin.data());
+ return {begin(hex), end(hex)};
}
string base64_encode (string const & s) {
- char b64[BASE64_ENCODE_RAW_LENGTH(s.size())];
- base64_encode_raw(b64, s.size(), reinterpret_cast<uint8_t const *>(s.data()));
- return {b64, sizeof(b64)};
+ std::vector<char> b64(BASE64_ENCODE_RAW_LENGTH(s.size()));
+ base64_encode_raw(b64.data(), s.size(), reinterpret_cast<uint8_t const *>(s.data()));
+ return {begin(b64), end(b64)};
}
void cloexec (int fd) {
@@ -315,9 +315,9 @@ bool confirm (string const & question) {
throw runtime_error("fork()");
if (pid == 0) {
// child
- char const * args[3] = { sap, question.c_str(), nullptr };
+ std::array<char const *, 3> const args{ sap, question.c_str(), nullptr };
// see execvp(3p) for cast rationale
- execvp(sap, const_cast<char * const *>(args));
+ execvp(sap, const_cast<char * const *>(args.data()));
throw system_error(errno, system_category(), "exec");
} else {
// parent