qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] ad824b: websock: fix handshake leak


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] ad824b: websock: fix handshake leak
Date: Fri, 02 Nov 2018 04:26:25 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: ad824bdc63d9c799f9a1dce4beefbaa3dacb59df
      
https://github.com/qemu/qemu/commit/ad824bdc63d9c799f9a1dce4beefbaa3dacb59df
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M io/channel-websock.c

  Log Message:
  -----------
  websock: fix handshake leak

Missed in f69a8bde293.
Thanks Valgrind:

==955== 217 bytes in 1 blocks are definitely lost in loss record 275 of 321
==955==    at 0x483A965: realloc (vg_replace_malloc.c:785)
==955==    by 0x50B6839: __vasprintf_chk (in /usr/lib64/libc-2.28.so)
==955==    by 0x49AA05C: g_vasprintf (in /usr/lib64/libglib-2.0.so.0.5800.1)
==955==    by 0x4983440: g_strdup_vprintf (in 
/usr/lib64/libglib-2.0.so.0.5800.1)
==955==    by 0x126048: qio_channel_websock_handshake_send_res 
(channel-websock.c:162)
==955==    by 0x1266E6: qio_channel_websock_handshake_send_res_ok 
(channel-websock.c:362)
==955==    by 0x126D3E: qio_channel_websock_handshake_process 
(channel-websock.c:468)
==955==    by 0x126EF2: qio_channel_websock_handshake_read 
(channel-websock.c:511)
==955==    by 0x12715B: qio_channel_websock_handshake_io (channel-websock.c:571)
==955==    by 0x125027: qio_channel_fd_source_dispatch (channel-watch.c:84)
==955==    by 0x496326C: g_main_context_dispatch (in 
/usr/lib64/libglib-2.0.so.0.5800.1)
==955==    by 0x169EC3: glib_pollfds_poll (main-loop.c:215)

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 3b023756b1807f4d5f91a5c2c801935c45fa9bed
      
https://github.com/qemu/qemu/commit/3b023756b1807f4d5f91a5c2c801935c45fa9bed
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M chardev/char-socket.c

  Log Message:
  -----------
  char-socket: correctly set has_reconnect when parsing QemuOpts

qemu_chr_parse_socket() fills all ChardevSocket fields, but that
doesn't reflect correctly the arguments given with the options / on
the command line. "reconnect" takes a number as argument, and the
default value is 0, which doesn't help to identify the missing
option. The other arguments have default values that are less
problematic, leave them set by default for now.

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: 4591bd46e6f8db67b61fdf09ae1bc266d73808ee
      
https://github.com/qemu/qemu/commit/4591bd46e6f8db67b61fdf09ae1bc266d73808ee
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M chardev/char-socket.c

  Log Message:
  -----------
  char-socket: make 'fd' incompatible with 'reconnect'

A chardev socket created with the 'fd=' argument is not going to
handle reconnection properly by recycling the same fd (or not in a
supported way). Let's forbid this case.

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: 4493b6a54cbf85797a462978a7f1126de8c9c7b8
      
https://github.com/qemu/qemu/commit/4493b6a54cbf85797a462978a7f1126de8c9c7b8
  Author: Julia Suvorova <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M chardev/char-socket.c

  Log Message:
  -----------
  chardev/char-socket: Function headers refactoring

Upcoming websocket support requires additional parameters in function
headers that are already overloaded. This patch replaces the bunch of
parameters with a single structure pointer.

Signed-off-by: Julia Suvorova <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: 981b06e7444781981cb86a8f1cce8567e63e83ac
      
https://github.com/qemu/qemu/commit/981b06e7444781981cb86a8f1cce8567e63e83ac
  Author: Julia Suvorova <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M chardev/char-socket.c
    M chardev/char.c
    M qapi/char.json
    M qemu-options.hx

  Log Message:
  -----------
  chardev: Add websocket support

New option "websocket" added to allow using WebSocket protocol for
chardev socket backend.
Example:
    -chardev socket,websocket,server,id=...

Signed-off-by: Julia Suvorova <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>


  Commit: 125fc4a7a908ef59f5d969fdd7880176010460a5
      
https://github.com/qemu/qemu/commit/125fc4a7a908ef59f5d969fdd7880176010460a5
  Author: Julia Suvorova <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M tests/test-char.c

  Log Message:
  -----------
  tests/test-char: Check websocket chardev functionality

Test order:
    Creating server websocket chardev
    Creating usual tcp chardev client
    Sending handshake message from client
    Receiving handshake reply
    Sending ping frame with "hello" payload
    Receiving pong reply
    Sending binary data "world"
    Checking the received data on server side
    Checking of closing handshake

Signed-off-by: Julia Suvorova <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>


  Commit: 1ad723e98b8499d0690f7f7eafc945908a1db634
      
https://github.com/qemu/qemu/commit/1ad723e98b8499d0690f7f7eafc945908a1db634
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-11-01 (Thu, 01 Nov 2018)

  Changed paths:
    M .editorconfig

  Log Message:
  -----------
  editorconfig: set emacs mode

Some time ago, I proposed to use an (eval) in .dir-locals.el to set
the mode for all json files and Makefile. Unfortunately, this isn't
safe, and emacs will prompt the user, which isn't very friendly.

Fortunately, editorconfig provides a special config key which does
allow to set the emacs mode. Add a few missing entries and set the
emacs mode.

Update top comment to provide a short summary about the file and the
IDE plugins while at it.

Signed-off-by: Marc-André Lureau <address@hidden>
Acked-by: Markus Armbruster <address@hidden>


  Commit: 2959fb7fe50c3c22aabaaabf198a1b87d10e51f6
      
https://github.com/qemu/qemu/commit/2959fb7fe50c3c22aabaaabf198a1b87d10e51f6
  Author: Peter Maydell <address@hidden>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M .editorconfig
    M chardev/char-socket.c
    M chardev/char.c
    M io/channel-websock.c
    M qapi/char.json
    M qemu-options.hx
    M tests/test-char.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/elmarco/tags/chrdev-pull-request' into 
staging

- add websocket support
- socket: make 'fd' incompatible with 'reconnect'
- fix a websocket leak
- unrelated editorconfig patch that missed -trivial (included for
  convenience)
- v2: fix commit author field

# gpg: Signature made Thu 01 Nov 2018 08:23:39 GMT
# gpg:                using RSA key DAE8E10975969CE5
# gpg: Good signature from "Marc-André Lureau <address@hidden>"
# gpg:                 aka "Marc-André Lureau <address@hidden>"
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5

* remotes/elmarco/tags/chrdev-pull-request:
  editorconfig: set emacs mode
  tests/test-char: Check websocket chardev functionality
  chardev: Add websocket support
  chardev/char-socket: Function headers refactoring
  char-socket: make 'fd' incompatible with 'reconnect'
  char-socket: correctly set has_reconnect when parsing QemuOpts
  websock: fix handshake leak

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/4cb890b858bd...2959fb7fe50c
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]