| Message ID | 20251104091940.10826-1-gert@greenie.muc.de |
|---|---|
| State | Accepted |
| Headers | show |
| Series | [Openvpn-devel,v4] ssl: Clean up type handling in write_string() | expand |
The +2 is already a few days old, but it needed the prerequisites to
apply (due to the #pragma moving around).
Change still looks good, passes all BB tests, smoke test on Linux passed
as well.
Your patch has been applied to the master branch.
commit 2a4b12f5a732202be99c6f5412c23128126da3cc
Author: Frank Lichtenheld
Date: Tue Nov 4 10:19:35 2025 +0100
ssl: Clean up type handling in write_string()
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1300
Message-Id: <20251104091940.10826-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34191.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
--
kind regards,
Gert Doering
diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c index d177730..e03b81e 100644 --- a/src/openvpn/ssl.c +++ b/src/openvpn/ssl.c @@ -1780,20 +1780,16 @@ return true; } -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - static bool write_string(struct buffer *buf, const char *str, const int maxlen) { - const int len = strlen(str) + 1; - if (len < 1 || (maxlen >= 0 && len > maxlen)) + const size_t len = strlen(str) + 1; + const size_t real_maxlen = (maxlen >= 0 && maxlen <= UINT16_MAX) ? (size_t)maxlen : UINT16_MAX; + if (len > real_maxlen) { return false; } - if (!buf_write_u16(buf, len)) + if (!buf_write_u16(buf, (uint16_t)len)) { return false; } @@ -1833,6 +1829,11 @@ return len; } +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + static char * read_string_alloc(struct buffer *buf) {