Attention is currently required from: cron2, flichtenheld.
Hello cron2, plaisthos,
I'd like you to reexamine a change. Please visit
http://gerrit.openvpn.net/c/openvpn/+/1293?usp=email
to look at the new patch set (#10).
The following approvals got outdated and were removed:
Code-Review-1 by cron2
Change subject: push: Fix conversion issues related to timeout in
send_auth_pending_messages
......................................................................
push: Fix conversion issues related to timeout in send_auth_pending_messages
Add additional checking to make sure that the required
casts are safe.
Change-Id: Icc31b7fa0da86220df45552aecc15dc6c769cd54
Signed-off-by: Frank Lichtenheld <[email protected]>
---
M src/openvpn/push.c
M src/openvpn/ssl_verify.c
2 files changed, 13 insertions(+), 7 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/93/1293/10
diff --git a/src/openvpn/push.c b/src/openvpn/push.c
index 25df48d..551a5c7 100644
--- a/src/openvpn/push.c
+++ b/src/openvpn/push.c
@@ -429,11 +429,6 @@
gc_free(&gc);
}
-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
bool
send_auth_pending_messages(struct tls_multi *tls_multi, struct tls_session
*session,
const char *extra, unsigned int timeout)
@@ -449,7 +444,12 @@
/* Calculate the maximum timeout and subtract the time we already waited */
unsigned int max_timeout =
max_uint(tls_multi->opt.renegotiate_seconds / 2,
tls_multi->opt.handshake_window);
- max_timeout = max_timeout - (now - ks->initial);
+ time_t time_elapsed = now - ks->initial;
+ if (time_elapsed < 0 || time_elapsed >= (time_t)max_timeout)
+ {
+ return false;
+ }
+ max_timeout -= (unsigned int)time_elapsed;
timeout = min_uint(max_timeout, timeout);
struct gc_arena gc = gc_new();
@@ -738,6 +738,11 @@
return true;
}
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
+
static bool
send_push_options(struct context *c, struct buffer *buf, struct push_list
*push_list, int safe_cap,
bool *push_sent, bool *multi_push)
diff --git a/src/openvpn/ssl_verify.c b/src/openvpn/ssl_verify.c
index 0b02a2f..c74d555 100644
--- a/src/openvpn/ssl_verify.c
+++ b/src/openvpn/ssl_verify.c
@@ -911,8 +911,9 @@
buf_chomp(iv_buf);
buf_chomp(extra_buf);
+ errno = 0;
long timeout = strtol(BSTR(timeout_buf), NULL, 10);
- if (timeout <= 0)
+ if (timeout <= 0 || timeout > UINT_MAX || errno)
{
msg(M_WARN, "could not parse auth pending file timeout");
buffer_list_free(lines);
--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/1293?usp=email
To unsubscribe, or for help writing mail filters, visit
http://gerrit.openvpn.net/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: Icc31b7fa0da86220df45552aecc15dc6c769cd54
Gerrit-Change-Number: 1293
Gerrit-PatchSet: 10
Gerrit-Owner: flichtenheld <[email protected]>
Gerrit-Reviewer: cron2 <[email protected]>
Gerrit-Reviewer: plaisthos <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-Attention: cron2 <[email protected]>
Gerrit-Attention: flichtenheld <[email protected]>
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel