X-Git-Url: https://bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=tools%2Fserver.c;h=0af6b421179c96602633fc082f6541d3efcdcf65;hp=05729281596ef6c0cba8d99959538b59a793227c;hb=0d974e1c9c284be028143fbbeaaac7faed8dca96;hpb=bab0f8639cb1e97c584e7751fd7d017e0e24da63 diff --git a/tools/server.c b/tools/server.c index 0572928..0af6b42 100644 --- a/tools/server.c +++ b/tools/server.c @@ -161,8 +161,8 @@ accept_client(int server_fd, int verbose) tmp, sizeof tmp); break; case AF_INET6: - name = inet_ntop(AF_INET, - &((struct sockaddr_in *)&sa)->sin_addr, + name = inet_ntop(AF_INET6, + &((struct sockaddr_in6 *)&sa)->sin6_addr, tmp, sizeof tmp); break; } @@ -637,7 +637,11 @@ do_server(int argc, char *argv[]) usage_server(); goto server_exit_error; } - iobuf_len = strtoul(arg, 0, 10); + iobuf_len = parse_size(arg); + if (iobuf_len == (size_t)-1) { + usage_server(); + goto server_exit_error; + } } else if (eqstr(arg, "-cache")) { if (++ i >= argc) { fprintf(stderr, @@ -652,7 +656,11 @@ do_server(int argc, char *argv[]) usage_server(); goto server_exit_error; } - cache_len = strtoul(arg, 0, 10); + cache_len = parse_size(arg); + if (cache_len == (size_t)-1) { + usage_server(); + goto server_exit_error; + } } else if (eqstr(arg, "-cert")) { if (++ i >= argc) { fprintf(stderr, @@ -1036,9 +1044,7 @@ server_exit: } xfree(chain); } - if (sk != NULL) { - free_private_key(sk); - } + free_private_key(sk); xfree(iobuf); xfree(cache); if (fd >= 0) {