Fix segfault if storage sync open_backend returns bad code

This commit is contained in:
Tim Wojtulewicz 2025-05-29 14:43:43 -07:00
parent d570486f36
commit 0d18ce4e13
2 changed files with 21 additions and 30 deletions

View file

@ -246,6 +246,10 @@ OperationResult Redis::DoOpen(OpenResultCallback* cb, RecordValPtr options) {
StringValPtr host = backend_options->GetField<StringVal>("server_host");
if ( host ) {
PortValPtr port = backend_options->GetField<PortVal>("server_port");
if ( ! port )
return {ReturnCode::CONNECTION_FAILED,
"server_port must be set if server_host is set in Redis options record"};
server_addr = util::fmt("%s:%d", host->ToStdString().c_str(), port->Port());
REDIS_OPTIONS_SET_TCP(&opt, host->ToStdStringView().data(), port->Port());
}