From: o7si Date: Sun, 28 Dec 2025 10:34:41 +0000 (+0800) Subject: rpc: fix segfault on invalid endpoint format (llama/18387) X-Git-Tag: v0.9.5~16 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=b0a7369db1ab8ffad22dae32d5840122e6cacad2;p=pkg%2Fggml%2Fsources%2Fggml rpc: fix segfault on invalid endpoint format (llama/18387) * rpc: fix segfault on invalid endpoint format * rpc: add error log for failed endpoint connection --- diff --git a/src/ggml-rpc/ggml-rpc.cpp b/src/ggml-rpc/ggml-rpc.cpp index e7890a5e..164b39d0 100644 --- a/src/ggml-rpc/ggml-rpc.cpp +++ b/src/ggml-rpc/ggml-rpc.cpp @@ -524,6 +524,7 @@ static std::shared_ptr get_socket(const std::string & endpoint) { std::string host; int port; if (!parse_endpoint(endpoint, host, port)) { + GGML_LOG_ERROR("Failed to parse endpoint: %s\n", endpoint.c_str()); return nullptr; } #ifdef _WIN32 @@ -2053,6 +2054,10 @@ ggml_backend_reg_t ggml_backend_rpc_reg(void) { static uint32_t ggml_backend_rpc_get_device_count(const char * endpoint) { auto sock = get_socket(endpoint); + if (sock == nullptr) { + GGML_LOG_ERROR("Failed to connect to %s\n", endpoint); + return 0; + } rpc_msg_device_count_rsp response; bool status = send_rpc_cmd(sock, RPC_CMD_DEVICE_COUNT, nullptr, 0, &response, sizeof(response)); RPC_STATUS_ASSERT(status);