Fuzzing: Fix use after free.

This occurs only in case of a bad config, and only when the broker is
already exiting.

Closes oss-fuzz #56009.
pull/2768/head
Roger A. Light 3 years ago
parent 385ddd7d86
commit 84e21d478c

@ -2459,11 +2459,10 @@ static int config__read_file_core(struct mosquitto__config *config, bool reload,
return MOSQ_ERR_NOMEM;
}
ws_origins[cur_listener->ws_origin_count] = NULL;
cur_listener->ws_origins = ws_origins;
if(conf__parse_string(&token, "websockets_origin", &ws_origins[cur_listener->ws_origin_count], &saveptr)){
mosquitto__FREE(ws_origins);
return MOSQ_ERR_INVAL;
}
cur_listener->ws_origins = ws_origins;
cur_listener->ws_origin_count++;
# else
log__printf(NULL, MOSQ_LOG_WARNING, "Warning: websockets_origin support not available, libwebsockets version is too old.");

Loading…
Cancel
Save