Message ID | 20210505211047.1496765-6-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | misc: Remove variable-length arrays on the stack | expand |
On Wed, May 05, 2021 at 11:10:29PM +0200, Philippe Mathieu-Daudé wrote: > The combined_key[... QIO_CHANNEL_WEBSOCK_GUID_LEN ...] array in > qio_channel_websock_handshake_send_res_ok() expands to a call > to strlen(QIO_CHANNEL_WEBSOCK_GUID), and the compiler doesn't > realize the string is const, so consider combined_key[] being > a variable-length array. > > To remove the variable-length array, we provide it a hint to > the compiler by using sizeof() - 1 instead of strlen(). > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > io/channel-websock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel
diff --git a/io/channel-websock.c b/io/channel-websock.c index 03c1f7cb62f..cd7bba6bde7 100644 --- a/io/channel-websock.c +++ b/io/channel-websock.c @@ -32,7 +32,7 @@ #define QIO_CHANNEL_WEBSOCK_CLIENT_KEY_LEN 24 #define QIO_CHANNEL_WEBSOCK_GUID "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" -#define QIO_CHANNEL_WEBSOCK_GUID_LEN strlen(QIO_CHANNEL_WEBSOCK_GUID) +#define QIO_CHANNEL_WEBSOCK_GUID_LEN (sizeof(QIO_CHANNEL_WEBSOCK_GUID) - 1) #define QIO_CHANNEL_WEBSOCK_HEADER_PROTOCOL "sec-websocket-protocol" #define QIO_CHANNEL_WEBSOCK_HEADER_VERSION "sec-websocket-version"
The combined_key[... QIO_CHANNEL_WEBSOCK_GUID_LEN ...] array in qio_channel_websock_handshake_send_res_ok() expands to a call to strlen(QIO_CHANNEL_WEBSOCK_GUID), and the compiler doesn't realize the string is const, so consider combined_key[] being a variable-length array. To remove the variable-length array, we provide it a hint to the compiler by using sizeof() - 1 instead of strlen(). Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- io/channel-websock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)