diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-04-18 16:24:34 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-04-18 16:25:34 +0200 |
commit | 981d9fd34f9d5ce08e748ad33429489bb13ed90f (patch) | |
tree | 529a108bf789df8932f24e10e07ff73cc7bd22cc /src | |
parent | bd819ee7ec69670028c3e118058f77ad104bd809 (diff) | |
download | gnutls-981d9fd34f9d5ce08e748ad33429489bb13ed90f.tar.gz |
tools: avoid relying on static buffers for service name
Diffstat (limited to 'src')
-rw-r--r-- | src/cli-debug.c | 6 | ||||
-rw-r--r-- | src/cli.c | 8 | ||||
-rw-r--r-- | src/danetool-args.def | 6 | ||||
-rw-r--r-- | src/danetool.c | 6 |
4 files changed, 15 insertions, 11 deletions
diff --git a/src/cli-debug.c b/src/cli-debug.c index 31e03c31d0..0c2e31226f 100644 --- a/src/cli-debug.c +++ b/src/cli-debug.c @@ -192,7 +192,7 @@ int main(int argc, char **argv) gnutls_session_t state; char portname[6]; socket_st hd; - const char *app_proto = NULL; + char app_proto[32] = ""; cmd_parser(argc, argv); @@ -236,11 +236,11 @@ int main(int argc, char **argv) #endif if (HAVE_OPT(APP_PROTO)) { - app_proto = OPT_ARG(APP_PROTO); + snprintf(app_proto, sizeof(app_proto), "%s", OPT_ARG(APP_PROTO)); } if (app_proto == NULL) { - app_proto = port_to_service(portname, "tcp"); + snprintf(app_proto, sizeof(app_proto), "%s", port_to_service(portname, "tcp")); } sockets_init(); @@ -73,7 +73,7 @@ int resume, starttls, insecure, ranges, rehandshake, udp, mtu, inline_commands; const char *hostname = NULL; -const char *service = NULL; +char service[32]=""; int record_max_size; int fingerprint; int crlf; @@ -1533,12 +1533,12 @@ static void cmd_parser(int argc, char **argv) mtu = OPT_VALUE_MTU; if (HAVE_OPT(PORT)) { - service = OPT_ARG(PORT); + snprintf(service, sizeof(service), "%s", OPT_ARG(PORT)); } else { if (HAVE_OPT(STARTTLS_PROTO)) - service = starttls_proto_to_service(OPT_ARG(STARTTLS_PROTO)); + snprintf(service, sizeof(service), "%s", starttls_proto_to_service(OPT_ARG(STARTTLS_PROTO))); else - service = "443"; + strcpy(service, "443"); } record_max_size = OPT_VALUE_RECORDSIZE; diff --git a/src/danetool-args.def b/src/danetool-args.def index b31e298a26..74b1d00de9 100644 --- a/src/danetool-args.def +++ b/src/danetool-args.def @@ -215,9 +215,13 @@ To read a server's DANE TLSA entry, use: $ danetool --check www.example.com --proto tcp --port 443 @end example -To verify a server's DANE TLSA entry, use: +To verify an HTTPS server's DANE TLSA entry, use: @example $ danetool --check www.example.com --proto tcp --port 443 --load-certificate chain.pem + +To verify an SMTP server's DANE TLSA entry, use: +@example +$ danetool --check www.example.com --proto tcp --starttls-proto=smtp --load-certificate chain.pem @end example _EOT_; }; diff --git a/src/danetool.c b/src/danetool.c index bea7bcf741..b05c49b78c 100644 --- a/src/danetool.c +++ b/src/danetool.c @@ -90,7 +90,7 @@ static void cmd_parser(int argc, char **argv) int ret, privkey_op = 0; common_info_st cinfo; const char *proto = "tcp"; - const char *service = "443"; + char service[32] = "443"; optionProcess(&danetoolOptions, argc, argv); @@ -159,10 +159,10 @@ static void cmd_parser(int argc, char **argv) cinfo.cert = OPT_ARG(LOAD_CERTIFICATE); if (HAVE_OPT(PORT)) { - service = OPT_ARG(PORT); + snprintf(service, sizeof(service), "%s", OPT_ARG(PORT)); } else { if (HAVE_OPT(STARTTLS_PROTO)) - service = starttls_proto_to_service(OPT_ARG(STARTTLS_PROTO)); + snprintf(service, sizeof(service), "%s", starttls_proto_to_service(OPT_ARG(STARTTLS_PROTO))); } if (HAVE_OPT(PROTO)) |