spice/server
Frediano Ziglio 1157588cc1 spicevmc: Avoids DoS if client is not able to get data faster enough
This fix half (one direction) of
https://gitlab.freedesktop.org/spice/spice/issues/29.
Specifically if you have attempt to transfer a file to the client
using WebDAV.
Previously the queue to the client was unbound. If client was not
getting data fast enough the server started queuing data.
To easily test this you can use a tool to limit bandwidth and
transfer a big file (I used a "dd if=/dev/zero bs=1M of=test") from
the guest.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2019-09-24 13:12:58 +01:00
..
tests test-loop: increment a variable outside of spice_assert 2019-08-22 21:27:35 +01:00
.gitignore gitignore: Reuse top-level gitignore 2016-12-14 19:09:21 +00:00
agent-msg-filter.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
agent-msg-filter.h agent-msg-filter: Add some comments to AgentMsgFilter structure 2019-02-11 15:15:59 +00:00
cache-item.h Unify header guards 2017-03-30 18:17:20 +01:00
cache-item.tmpl.c cache-item: Remove unused define 2019-06-21 08:30:56 +01:00
char-device.c char-device: Don't use RedClient API 2019-09-17 12:17:26 +01:00
char-device.h char-device: Don't use RedClient API 2019-09-17 12:17:26 +01:00
common-graphics-channel.c common-graphics-channel: Avoid closing server if client send huge messages 2019-06-10 13:44:01 +01:00
common-graphics-channel.h common-graphics-channel: Move "qxl" property to DisplayChannel 2017-09-07 06:42:01 +01:00
cursor-channel-client.c cache-item: Remove only written fields 2019-06-21 08:30:56 +01:00
cursor-channel-client.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
cursor-channel.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
cursor-channel.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
dcc-private.h cache-item: Remove only written fields 2019-06-21 08:30:56 +01:00
dcc-send.c dcc-send: fix use-after-free 2019-07-11 09:37:34 +01:00
dcc.c stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
dcc.h Use "base" as pipe item base field name 2018-06-18 13:40:51 +01:00
dispatcher.c dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
dispatcher.h dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
display-channel-private.h Move image_compression field from RedWorker to DisplayChannel 2019-03-28 20:20:25 +00:00
display-channel.c streaming: Restart streams on video-codec changes 2019-07-11 09:28:51 +01:00
display-channel.h Move image_compression field from RedWorker to DisplayChannel 2019-03-28 20:20:25 +00:00
display-limits.h Receive the GraphicsDeviceInfo message from the streaming agent 2019-01-29 15:46:54 +01:00
event-loop.c event loop: improve implementation of watches for Unix systems 2019-07-24 11:19:38 +01:00
glib-compat.h Use verify instead of G_STATIC_ASSERT 2017-12-01 22:49:46 +00:00
glz-encode-match.tmpl.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
glz-encode.tmpl.c glz-encode: Remove obsolete reference segment 2019-08-12 10:48:02 +01:00
glz-encoder-dict.c typo: fix the spelling of precede 2019-07-04 10:05:19 +01:00
glz-encoder-dict.h Make various functions static 2017-04-05 12:39:20 +02:00
glz-encoder-priv.h glz-encoder-dict: Remove useless __packed__ attribute 2019-08-02 10:55:20 +01:00
glz-encoder.c glz-encoder: Remove useless __packed__ attribute 2019-08-02 10:55:27 +01:00
glz-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
gstreamer-encoder.c gst:mjpeg do not set max-threads 2019-07-17 11:21:55 +01:00
image-cache.c Use SPICE_CONTAINEROF to avoid some possible alignment warnings on MIPS 2019-06-18 09:48:28 +01:00
image-cache.h Unify header guards 2017-03-30 18:17:20 +01:00
image-encoders.c typo: image-encoders: fix the spelling of guaranteed 2019-07-04 10:05:16 +01:00
image-encoders.h Add possibly missing headers for pthread.h 2018-06-26 10:54:01 +01:00
inputs-channel-client.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
inputs-channel-client.h inputs-channel-client: Remove unused declarations 2019-06-13 07:44:10 +01:00
inputs-channel.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
inputs-channel.h inputs-channel: Move spice_server_kbd_leds to InputsChannel 2017-12-19 16:29:41 +00:00
jpeg-encoder.c jpeg: Support big endian machines 2019-06-19 10:36:10 +01:00
jpeg-encoder.h jpeg-encoder: Remove JPEG_IMAGE_TYPE_RGB24 2018-06-26 18:06:50 +01:00
lz4-encoder.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
lz4-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
main-channel-client.c main-channel-client: style fixup, indentation of return 2019-09-24 09:46:13 +02:00
main-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
main-channel.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
main-channel.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
main-dispatcher.c dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
main-dispatcher.h Remove core parameter from main_dispatcher_new 2019-02-12 22:34:52 +00:00
Makefile.am Add support for clients connecting with the WebSocket protocol. 2019-06-26 14:18:27 +01:00
memslot.c Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
memslot.h Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
meson.build Add support for clients connecting with the WebSocket protocol. 2019-06-26 14:18:27 +01:00
migration-protocol.h Use start/end-packet.h headers instead of direct GCC attribute 2019-07-22 14:56:00 +01:00
mjpeg-encoder.c jpeg: Support big endian machines 2019-06-19 10:36:10 +01:00
net-utils.c net-utils: Port to Windows 2019-05-07 10:14:08 +01:00
net-utils.h reds-stream: Introduce reds_stream_get_no_delay() helper 2017-03-31 12:22:52 +02:00
pixmap-cache.c Use SPICE_CONTAINEROF to avoid some possible alignment warnings on MIPS 2019-06-18 09:48:28 +01:00
pixmap-cache.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-capabilities.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
red-channel-capabilities.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-client.c red-channel-client: Inline red_channel_client_get_channel in macro 2019-09-17 09:40:29 +01:00
red-channel-client.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
red-channel.c red-channel: Inline red_channel_pipes_create_batch 2019-08-02 11:11:05 +01:00
red-channel.h red-channel: Remove unused declaration 2019-06-13 07:44:10 +01:00
red-client.c Remove compile warnings on Linux 32bit system 2019-06-13 09:04:01 +01:00
red-client.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
red-common.h red-common: Add a comment for GLIST_FOREACH_GENERIC 2019-07-09 11:10:27 +01:00
red-parse-qxl.c Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
red-parse-qxl.h qxl: Release QXL resources in red_put_surface_cmd 2018-12-06 13:04:03 +00:00
red-pipe-item.c red-pipe-item: Use GLib memory functions 2017-10-11 12:52:17 +01:00
red-pipe-item.h red-pipe-item: Removed some not necessary headers inclusions 2019-02-23 05:12:59 +00:00
red-qxl.c red-qxl: Make sure we have at least one monitor 2019-09-19 14:54:53 +01:00
red-qxl.h red-qxl: Better encapsulation of device display information 2019-07-08 13:19:12 +01:00
red-record-qxl.c Disable recording filtering for Windows 2019-05-07 10:14:33 +01:00
red-record-qxl.h red-record-qxl: Change license header to LGPLv2+ 2018-07-05 10:15:17 +02:00
red-replay-qxl.c red-replay-qxl: Fix replay on 32 bit systems 2019-08-11 10:18:11 +01:00
red-stream-device.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
red-stream-device.h red-stream-device: Constify stream_device_get_device_display_info result 2019-02-04 19:44:12 +00:00
red-stream.c websocket: Handle text data 2019-06-26 14:19:10 +01:00
red-stream.h Add support for clients connecting with the WebSocket protocol. 2019-06-26 14:18:27 +01:00
red-worker.c dispatcher: Use a new API to handle events 2019-08-02 11:16:57 +01:00
red-worker.h red-worker: Remove unused definitions 2019-03-29 15:18:49 +00:00
reds-private.h Send the graphics device info to the vd_agent 2019-01-29 15:46:28 +01:00
reds.c reds: Inline reds_mig_switch function 2019-09-17 09:40:24 +01:00
reds.h reds: Add ability to query the video-codecs currently enabled 2019-07-05 11:11:57 +01:00
smartcard-channel-client.c smartcard: Use RedChannelClient as the type for RedCharDevice client 2019-09-17 12:17:31 +01:00
smartcard-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
smartcard.c smartcard: Use RedChannelClient as the type for RedCharDevice client 2019-09-17 12:17:31 +01:00
smartcard.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
sound.c windows: Disable code not working on Windows 2019-05-07 10:14:22 +01:00
sound.h Change playback_compression to bool type 2017-04-07 15:08:43 -05:00
spice-audio.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-bitmap-utils.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-bitmap-utils.h Use verify instead of G_STATIC_ASSERT 2017-12-01 22:49:46 +00:00
spice-bitmap-utils.tmpl.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-char.h spice-char: Add some documentation to SpiceCharDeviceInterface 2019-07-10 09:53:58 +01:00
spice-core.h windows: Do not include headers not available on Windows 2019-01-31 10:48:34 +00:00
spice-input.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-migration.h server: Use SPICE_GNUC_DEPRECATED to avoid a dependency on glib.h 2016-08-12 09:47:40 +01:00
spice-qxl.h Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
spice-replay.h Unify header guards 2017-03-30 18:17:20 +01:00
spice-server-enums.c.tmpl Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-server-enums.h.tmpl build: Rename spice-server-enums.tmpl.[ch] to spice-server-enums.[ch].tmpl 2018-03-07 10:04:04 -03:00
spice-server.h reds: Add ability to query the video-codecs currently enabled 2019-07-05 11:11:57 +01:00
spice-server.syms Remove reference to removed ABI 2019-08-15 11:16:42 +01:00
spice-version.h.in build-sys: generate spice-version.h 2014-11-27 14:27:33 +01:00
spice.h Make red-replay-qxl.h a public header 2016-11-10 06:37:15 +00:00
spicevmc.c spicevmc: Avoids DoS if client is not able to get data faster enough 2019-09-24 13:12:58 +01:00
stat-file.c stat-file: Use proper macro for container computation 2019-08-22 08:53:23 +01:00
stat-file.h Unify header guards 2017-03-30 18:17:20 +01:00
stat.h Unify header guards 2017-03-30 18:17:20 +01:00
stream-channel.c stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
stream-channel.h Make stream-channel.h self-contained 2017-10-30 12:01:24 +01:00
sw-canvas.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
sys-socket.c sys-socket: Add socket_newpair utility 2019-05-07 10:14:05 +01:00
sys-socket.h sys-socket: Add socket_newpair utility 2019-05-07 10:14:05 +01:00
tree.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
tree.h Unify header guards 2017-03-30 18:17:20 +01:00
utils.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
utils.h gstreamer-encoder: fix compiler warning with Fedora 30 2019-07-03 14:24:25 +01:00
video-encoder.h reds: Add ability to query the video-codecs currently enabled 2019-07-05 11:11:57 +01:00
video-stream.c stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
video-stream.h stream-channel: Add preferred video codec capability 2019-09-02 09:53:27 +01:00
websocket.c websocket: Handle continuation and 0-size frames 2019-06-26 14:19:13 +01:00
websocket.h websocket: Include proper type header 2019-07-17 12:53:11 +01:00
zlib-encoder.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
zlib-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00