From c55acc2eed76ae17667fa5f65f5f3c347b796926 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 23 Feb 2011 11:29:37 -0800 Subject: [PATCH] stream: Make stream_report_content() tolerate negative size. 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 90ec5214..37b61100 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 2482bf20..51a76566 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 #include #include +#include #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 */ -- 2.30.2