summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2016-11-04 18:59:35 +0000
committerjsing <>2016-11-04 18:59:35 +0000
commitb326262ac79090d11fadc4ca13c23aaf9d101034 (patch)
tree9b9666ed6082f6acfbfa7f59cda358eab590ff31 /src/lib
parentd728ee2c971216d9a12df9f880d3d68c41f9287f (diff)
downloadopenbsd-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.c8
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;