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

Ben Pfaff blp at nicira.com
Wed Feb 23 21:24:46 UTC 2011


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





More information about the dev mailing list