Re: [PATCH spice-server] reds: use a single field for RedsClientMonitorsConfig buffer size

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

 



On Wed, Jun 14, 2017 at 08:54:13AM +0100, Frediano Ziglio wrote:
> buffer_pos was just the buffer size beside for a short time
> during buffer reallocation so just use a field.
> 
> Change suggested by Christophe Fergeau.

I have a local patch removing RedsClientMonitorsConfig altogether in
favour of SpiceBuffer which would address this as well, but it's on top
of other conflicting patches, I'll try to rebase it and send it as an
alternative to this patch.

Christophe

> 
> Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
> ---
>  server/reds-private.h | 1 -
>  server/reds.c         | 9 ++++-----
>  2 files changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/server/reds-private.h b/server/reds-private.h
> index 915bcf6..7e927fe 100644
> --- a/server/reds-private.h
> +++ b/server/reds-private.h
> @@ -64,7 +64,6 @@ typedef struct RedsMigTargetClient {
>  typedef struct RedsClientMonitorsConfig {
>      uint8_t *buffer;
>      int buffer_size;
> -    int buffer_pos;
>  } RedsClientMonitorsConfig;
>  
>  typedef struct ChannelSecurityOptions ChannelSecurityOptions;
> diff --git a/server/reds.c b/server/reds.c
> index 09b674d..8866c9d 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -1106,7 +1106,7 @@ static void reds_client_monitors_config_cleanup(RedsState *reds)
>  {
>      RedsClientMonitorsConfig *cmc = &reds->client_monitors_config;
>  
> -    cmc->buffer_size = cmc->buffer_pos = 0;
> +    cmc->buffer_size = 0;
>      free(cmc->buffer);
>      cmc->buffer = NULL;
>  }
> @@ -1118,11 +1118,10 @@ static void reds_on_main_agent_monitors_config(RedsState *reds,
>      VDAgentMonitorsConfig *monitors_config;
>      RedsClientMonitorsConfig *cmc = &reds->client_monitors_config;
>  
> -    cmc->buffer_size += size;
> -    cmc->buffer = realloc(cmc->buffer, cmc->buffer_size);
> +    cmc->buffer = realloc(cmc->buffer, cmc->buffer_size + size);
>      spice_assert(cmc->buffer);
> -    memcpy(cmc->buffer + cmc->buffer_pos, message, size);
> -    cmc->buffer_pos += size;
> +    memcpy(cmc->buffer + cmc->buffer_size, message, size);
> +    cmc->buffer_size += size;
>      msg_header = (VDAgentMessage *)cmc->buffer;
>      if (sizeof(VDAgentMessage) > cmc->buffer_size ||
>              msg_header->size > cmc->buffer_size - sizeof(VDAgentMessage)) {
> -- 
> 2.9.4
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/spice-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]