If the database server sent an error reply to a monitor_cond request, and the error was not a JSON string, then passing the error to json_string() caused an assertion failure.
Found by inspection. Signed-off-by: Ben Pfaff <[email protected]> --- lib/ovsdb-idl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c index aede751412fb..ae6826ac49d4 100644 --- a/lib/ovsdb-idl.c +++ b/lib/ovsdb-idl.c @@ -552,8 +552,8 @@ ovsdb_idl_run(struct ovsdb_idl *idl) && idl->state == IDL_S_MONITOR_COND_REQUESTED && idl->request_id && json_equal(idl->request_id, msg->id)) { - if (msg->error && !strcmp(json_string(msg->error), - "unknown method")) { + if (msg->error && msg->error->type == JSON_STRING + && !strcmp(json_string(msg->error), "unknown method")) { /* Fall back to using "monitor" method. */ json_destroy(idl->request_id); idl->request_id = NULL; -- 2.10.2 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
