mirror of
https://github.com/openvswitch/ovs
synced 2025-10-13 14:07:02 +00:00
vlog: New function vlog_set_levels_from_string_assert().
Two of the users of vlog_set_levels_from_string() in the tests could have silently failed, if their arguments were invalid. This avoids that problem (and a memory leak). Found by Coverity. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
10
lib/vlog.c
10
lib/vlog.c
@@ -431,6 +431,16 @@ exit:
|
||||
return msg;
|
||||
}
|
||||
|
||||
/* Set debugging levels. Abort with an error message if 's' is invalid. */
|
||||
void
|
||||
vlog_set_levels_from_string_assert(const char *s)
|
||||
{
|
||||
char *error = vlog_set_levels_from_string(s);
|
||||
if (error) {
|
||||
ovs_fatal(0, "%s", error);
|
||||
}
|
||||
}
|
||||
|
||||
/* If 'arg' is null, configure maximum verbosity. Otherwise, sets
|
||||
* configuration according to 'arg' (see vlog_set_levels_from_string()). */
|
||||
void
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
|
||||
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -114,7 +114,8 @@ struct vlog_rate_limit {
|
||||
enum vlog_level vlog_get_level(const struct vlog_module *, enum vlog_facility);
|
||||
void vlog_set_levels(struct vlog_module *,
|
||||
enum vlog_facility, enum vlog_level);
|
||||
char *vlog_set_levels_from_string(const char *);
|
||||
char *vlog_set_levels_from_string(const char *) WARN_UNUSED_RESULT;
|
||||
void vlog_set_levels_from_string_assert(const char *);
|
||||
char *vlog_get_levels(void);
|
||||
bool vlog_is_enabled(const struct vlog_module *, enum vlog_level);
|
||||
bool vlog_should_drop(const struct vlog_module *, enum vlog_level,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2012 Nicira, Inc.
|
||||
* Copyright (c) 2011, 2012, 2013 Nicira, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -32,7 +32,7 @@ parse_keys(void)
|
||||
struct ds in;
|
||||
|
||||
ds_init(&in);
|
||||
vlog_set_levels_from_string("odp_util:console:dbg");
|
||||
vlog_set_levels_from_string_assert("odp_util:console:dbg");
|
||||
while (!ds_get_test_line(&in, stdin)) {
|
||||
enum odp_key_fitness fitness;
|
||||
struct ofpbuf odp_key;
|
||||
@@ -98,7 +98,7 @@ parse_actions(void)
|
||||
struct ds in;
|
||||
|
||||
ds_init(&in);
|
||||
vlog_set_levels_from_string("odp_util:console:dbg");
|
||||
vlog_set_levels_from_string_assert("odp_util:console:dbg");
|
||||
while (!ds_get_test_line(&in, stdin)) {
|
||||
struct ofpbuf odp_actions;
|
||||
struct ds out;
|
||||
|
Reference in New Issue
Block a user