mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[fix] fix crash due to invalid pointer
This commit is contained in:
@@ -99,6 +99,10 @@ int Render::ProcessMouseKeyEven(SDL_Event &ev) {
|
|||||||
|
|
||||||
void Render::SdlCaptureAudioIn(void *userdata, Uint8 *stream, int len) {
|
void Render::SdlCaptureAudioIn(void *userdata, Uint8 *stream, int len) {
|
||||||
Render *render = (Render *)userdata;
|
Render *render = (Render *)userdata;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (1) {
|
if (1) {
|
||||||
if ("Connected" == render->connection_status_str_) {
|
if ("Connected" == render->connection_status_str_) {
|
||||||
SendData(render->peer_, DATA_TYPE::AUDIO, (const char *)stream, len);
|
SendData(render->peer_, DATA_TYPE::AUDIO, (const char *)stream, len);
|
||||||
@@ -138,6 +142,10 @@ void Render::OnReceiveVideoBufferCb(const XVideoFrame *video_frame,
|
|||||||
const char *user_id, size_t user_id_size,
|
const char *user_id, size_t user_id_size,
|
||||||
void *user_data) {
|
void *user_data) {
|
||||||
Render *render = (Render *)user_data;
|
Render *render = (Render *)user_data;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (render->connection_established_) {
|
if (render->connection_established_) {
|
||||||
if (!render->dst_buffer_) {
|
if (!render->dst_buffer_) {
|
||||||
render->dst_buffer_capacity_ = video_frame->size;
|
render->dst_buffer_capacity_ = video_frame->size;
|
||||||
@@ -172,6 +180,10 @@ void Render::OnReceiveAudioBufferCb(const char *data, size_t size,
|
|||||||
const char *user_id, size_t user_id_size,
|
const char *user_id, size_t user_id_size,
|
||||||
void *user_data) {
|
void *user_data) {
|
||||||
Render *render = (Render *)user_data;
|
Render *render = (Render *)user_data;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
render->audio_buffer_fresh_ = true;
|
render->audio_buffer_fresh_ = true;
|
||||||
SDL_QueueAudio(render->output_dev_, data, (uint32_t)size);
|
SDL_QueueAudio(render->output_dev_, data, (uint32_t)size);
|
||||||
}
|
}
|
||||||
@@ -180,6 +192,10 @@ void Render::OnReceiveDataBufferCb(const char *data, size_t size,
|
|||||||
const char *user_id, size_t user_id_size,
|
const char *user_id, size_t user_id_size,
|
||||||
void *user_data) {
|
void *user_data) {
|
||||||
Render *render = (Render *)user_data;
|
Render *render = (Render *)user_data;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
std::string user(user_id, user_id_size);
|
std::string user(user_id, user_id_size);
|
||||||
RemoteAction remote_action;
|
RemoteAction remote_action;
|
||||||
memcpy(&remote_action, data, sizeof(remote_action));
|
memcpy(&remote_action, data, sizeof(remote_action));
|
||||||
@@ -197,6 +213,10 @@ void Render::OnReceiveDataBufferCb(const char *data, size_t size,
|
|||||||
|
|
||||||
void Render::OnSignalStatusCb(SignalStatus status, void *user_data) {
|
void Render::OnSignalStatusCb(SignalStatus status, void *user_data) {
|
||||||
Render *render = (Render *)user_data;
|
Render *render = (Render *)user_data;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
render->signal_status_ = status;
|
render->signal_status_ = status;
|
||||||
if (SignalStatus::SignalConnecting == status) {
|
if (SignalStatus::SignalConnecting == status) {
|
||||||
render->signal_status_str_ = "SignalConnecting";
|
render->signal_status_str_ = "SignalConnecting";
|
||||||
@@ -222,6 +242,10 @@ void Render::OnSignalStatusCb(SignalStatus status, void *user_data) {
|
|||||||
|
|
||||||
void Render::OnConnectionStatusCb(ConnectionStatus status, void *user_data) {
|
void Render::OnConnectionStatusCb(ConnectionStatus status, void *user_data) {
|
||||||
Render *render = (Render *)user_data;
|
Render *render = (Render *)user_data;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
render->connection_status_ = status;
|
render->connection_status_ = status;
|
||||||
render->show_connection_status_window_ = true;
|
render->show_connection_status_window_ = true;
|
||||||
if (ConnectionStatus::Connecting == status) {
|
if (ConnectionStatus::Connecting == status) {
|
||||||
@@ -289,6 +313,10 @@ void Render::NetStatusReport(int client_id, TraversalMode mode,
|
|||||||
const unsigned short send,
|
const unsigned short send,
|
||||||
const unsigned short receive, void *user_data) {
|
const unsigned short receive, void *user_data) {
|
||||||
Render *render = (Render *)user_data;
|
Render *render = (Render *)user_data;
|
||||||
|
if (!render) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (client_id != 0 && 0 == strcmp(render->client_id_, "")) {
|
if (client_id != 0 && 0 == strcmp(render->client_id_, "")) {
|
||||||
std::string client_id_s = std::to_string(client_id);
|
std::string client_id_s = std::to_string(client_id);
|
||||||
memset(&render->client_id_, 0, sizeof(render->client_id_));
|
memset(&render->client_id_, 0, sizeof(render->client_id_));
|
||||||
|
|||||||
2
thirdparty/projectx
vendored
2
thirdparty/projectx
vendored
Submodule thirdparty/projectx updated: 2f16d22ab7...a8333c622b
Reference in New Issue
Block a user