Just use explicit casts. len is limited by BCAP and c is limited by being from buf_read_u8. So they are safe.
In case of status_printf this is only for Windows. len is limited by sizeof(buf), so also a safe cast. Change-Id: Iff1343a2f8cc7e32b8f36b359a00248e4dc3e8c9 Signed-off-by: Frank Lichtenheld <[email protected]> Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1485 --- This change was reviewed on Gerrit and approved by at least one developer. I request to merge it to master. Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1485 This mail reflects revision 2 of this Change. Acked-by according to Gerrit (reflected above): diff --git a/src/openvpn/status.c b/src/openvpn/status.c index 3f57244..d09f367 100644 --- a/src/openvpn/status.c +++ b/src/openvpn/status.c @@ -206,11 +206,6 @@ return ret; } -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - #define STATUS_PRINTF_MAXLEN 512 void @@ -243,7 +238,7 @@ size_t len = strlen(buf); if (len > 0) { - if (write(so->fd, buf, len) != len) + if (write(so->fd, buf, (unsigned int)len) != len) { so->errors = true; } @@ -274,16 +269,14 @@ /* read more of file into buffer */ if (c == -1) { - int len; - ASSERT(buf_init(&so->read_buf, 0)); - len = read(so->fd, BPTR(&so->read_buf), BCAP(&so->read_buf)); + ssize_t len = read(so->fd, BPTR(&so->read_buf), BCAP(&so->read_buf)); if (len <= 0) { break; } - ASSERT(buf_inc_len(&so->read_buf, len)); + ASSERT(buf_inc_len(&so->read_buf, (int)len)); continue; } @@ -299,7 +292,7 @@ break; } - buf_write_u8(buf, c); + buf_write_u8(buf, (uint8_t)c); } buf_null_terminate(buf); @@ -307,7 +300,3 @@ return ret; } - -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic pop -#endif _______________________________________________ Openvpn-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openvpn-devel
