projects
/
BearSSL
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed error reporting in case of PEM encoding error when decoding certificates.
[BearSSL]
/
tools
/
server.c
diff --git
a/tools/server.c
b/tools/server.c
index
fc16692
..
983fbe6
100644
(file)
--- a/
tools/server.c
+++ b/
tools/server.c
@@
-35,7
+35,6
@@
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
-#include <sys/poll.h>
#include "brssl.h"
#include "bearssl.h"
#include "brssl.h"
#include "bearssl.h"
@@
-88,7
+87,9
@@
host_bind(const char *host, const char *port, int verbose)
sa_len = p->ai_addrlen;
}
if (addr != NULL) {
sa_len = p->ai_addrlen;
}
if (addr != NULL) {
- inet_ntop(p->ai_family, addr, tmp, sizeof tmp);
+ if (!inet_ntop(p->ai_family, addr, tmp, sizeof tmp)) {
+ strcpy(tmp, "<invalid>");
+ }
} else {
sprintf(tmp, "<unknown family: %d>",
(int)sa->sa_family);
} else {
sprintf(tmp, "<unknown family: %d>",
(int)sa->sa_family);
@@
-162,8
+163,8
@@
accept_client(int server_fd, int verbose)
tmp, sizeof tmp);
break;
case AF_INET6:
tmp, sizeof tmp);
break;
case AF_INET6:
- name = inet_ntop(AF_INET,
- &((struct sockaddr_in
*)&sa)->sin
_addr,
+ name = inet_ntop(AF_INET
6
,
+ &((struct sockaddr_in
6 *)&sa)->sin6
_addr,
tmp, sizeof tmp);
break;
}
tmp, sizeof tmp);
break;
}
@@
-638,7
+639,11
@@
do_server(int argc, char *argv[])
usage_server();
goto server_exit_error;
}
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,
} else if (eqstr(arg, "-cache")) {
if (++ i >= argc) {
fprintf(stderr,
@@
-653,7
+658,11
@@
do_server(int argc, char *argv[])
usage_server();
goto server_exit_error;
}
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,
} else if (eqstr(arg, "-cert")) {
if (++ i >= argc) {
fprintf(stderr,
@@
-1037,9
+1046,7
@@
server_exit:
}
xfree(chain);
}
}
xfree(chain);
}
- if (sk != NULL) {
- free_private_key(sk);
- }
+ free_private_key(sk);
xfree(iobuf);
xfree(cache);
if (fd >= 0) {
xfree(iobuf);
xfree(cache);
if (fd >= 0) {