2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-29 13:27:59 +00:00

ovsdb-idl: Fix assertion failure on error path parsing server reply.

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 <blp@ovn.org>
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
This commit is contained in:
Ben Pfaff 2017-12-08 13:24:28 -08:00
parent 1ac62a0e09
commit fca1b42abe

View File

@ -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;