diff options
author | jsing <> | 2016-11-04 18:59:35 +0000 |
---|---|---|
committer | jsing <> | 2016-11-04 18:59:35 +0000 |
commit | b326262ac79090d11fadc4ca13c23aaf9d101034 (patch) | |
tree | 9b9666ed6082f6acfbfa7f59cda358eab590ff31 /src/lib | |
parent | d728ee2c971216d9a12df9f880d3d68c41f9287f (diff) | |
download | openbsd-b326262ac79090d11fadc4ca13c23aaf9d101034.tar.gz openbsd-b326262ac79090d11fadc4ca13c23aaf9d101034.tar.bz2 openbsd-b326262ac79090d11fadc4ca13c23aaf9d101034.zip |
Avoid another signed vs unsigned comparison.
ok miod@
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libtls/tls_config.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/libtls/tls_config.c b/src/lib/libtls/tls_config.c index 5c73c29d65..f727328f87 100644 --- a/src/lib/libtls/tls_config.c +++ b/src/lib/libtls/tls_config.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls_config.c,v 1.29 2016/11/04 05:13:13 beck Exp $ */ | 1 | /* $OpenBSD: tls_config.c,v 1.30 2016/11/04 18:59:35 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -128,6 +128,7 @@ tls_config_load_file(struct tls_error *error, const char *filetype, | |||
128 | { | 128 | { |
129 | struct stat st; | 129 | struct stat st; |
130 | int fd = -1; | 130 | int fd = -1; |
131 | ssize_t n; | ||
131 | 132 | ||
132 | free(*buf); | 133 | free(*buf); |
133 | *buf = NULL; | 134 | *buf = NULL; |
@@ -143,13 +144,16 @@ tls_config_load_file(struct tls_error *error, const char *filetype, | |||
143 | filetype, filename); | 144 | filetype, filename); |
144 | goto fail; | 145 | goto fail; |
145 | } | 146 | } |
147 | if (st.st_size < 0) | ||
148 | goto fail; | ||
146 | *len = (size_t)st.st_size; | 149 | *len = (size_t)st.st_size; |
147 | if ((*buf = malloc(*len)) == NULL) { | 150 | if ((*buf = malloc(*len)) == NULL) { |
148 | tls_error_set(error, "failed to allocate buffer for " | 151 | tls_error_set(error, "failed to allocate buffer for " |
149 | "%s file", filetype); | 152 | "%s file", filetype); |
150 | goto fail; | 153 | goto fail; |
151 | } | 154 | } |
152 | if (read(fd, *buf, *len) != *len) { | 155 | n = read(fd, *buf, *len); |
156 | if (n < 0 || (size_t)n != *len) { | ||
153 | tls_error_set(error, "failed to read %s file '%s'", | 157 | tls_error_set(error, "failed to read %s file '%s'", |
154 | filetype, filename); | 158 | filetype, filename); |
155 | goto fail; | 159 | goto fail; |