[ovs-dev] [coverity3 03/13] stream: Make stream_report_content() tolerate negative size.

Ethan Jackson ethan at nicira.com
Wed Feb 23 21:43:15 UTC 2011


Looks Good.

On Wed, Feb 23, 2011 at 1:24 PM, Ben Pfaff <blp at nicira.com> wrote:
> A negative size probably means that a system call failed.  The caller could
> set that to 0 but we might as well just tolerate it in
> stream_report_content() by making the parameter type signed.
>
> Coverity #10718.
> ---
>  lib/stream.c |    4 ++--
>  lib/stream.h |    5 +++--
>  2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/lib/stream.c b/lib/stream.c
> index 90ec521..37b6110 100644
> --- a/lib/stream.c
> +++ b/lib/stream.c
> @@ -727,7 +727,7 @@ pstream_open_with_default_ports(const char *name_,
>  /* Attempts to guess the content type of a stream whose first few bytes were
>  * the 'size' bytes of 'data'. */
>  static enum stream_content_type
> -stream_guess_content(const uint8_t *data, size_t size)
> +stream_guess_content(const uint8_t *data, ssize_t size)
>  {
>     if (size >= 2) {
>  #define PAIR(A, B) (((A) << 8) | (B))
> @@ -770,7 +770,7 @@ stream_content_type_to_string(enum stream_content_type type)
>  * module 'module', naming 'stream_name' as the source, explaining what
>  * content was expected and what was actually received. */
>  void
> -stream_report_content(const void *data, size_t size,
> +stream_report_content(const void *data, ssize_t size,
>                       enum stream_content_type expected_type,
>                       struct vlog_module *module, const char *stream_name)
>  {
> diff --git a/lib/stream.h b/lib/stream.h
> index 2482bf2..51a7656 100644
> --- a/lib/stream.h
> +++ b/lib/stream.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2009, 2010 Nicira Networks.
> + * Copyright (c) 2009, 2010, 2011 Nicira Networks.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
> @@ -20,6 +20,7 @@
>  #include <stdbool.h>
>  #include <stddef.h>
>  #include <stdint.h>
> +#include <sys/types.h>
>  #include "openvswitch/types.h"
>  #include "vlog.h"
>
> @@ -84,7 +85,7 @@ enum stream_content_type {
>     STREAM_JSONRPC
>  };
>
> -void stream_report_content(const void *, size_t, enum stream_content_type,
> +void stream_report_content(const void *, ssize_t, enum stream_content_type,
>                            struct vlog_module *, const char *stream_name);
>
>  #endif /* stream.h */
> --
> 1.7.2.3
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
>




More information about the dev mailing list