[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