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.
Acked-by: Alin Gabriel Serdean
@@ -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;
