Hi, On 08/31/2010 10:30 AM, Alon Levy wrote:
diff --git a/client/red_client.cpp b/client/red_client.cpp index 6c6e066..e1a322e 100644 --- a/client/red_client.cpp +++ b/client/red_client.cpp @@ -75,6 +75,12 @@ private: RedClient& _client; };+uint32_t default_agent_caps[] = { + (1<< VD_AGENT_CAP_MOUSE_STATE) | + (1<< VD_AGENT_CAP_MONITORS_CONFIG) | + (1<< VD_AGENT_CAP_REPLY) + }; + void ClipboardEvent::response(AbstractProcessLoop& events_loop) { static_cast<RedClient*>(events_loop.get_owner())->send_agent_clipboard(); @@ -328,8 +334,8 @@ RedClient::RedClient(Application& application) , _agent_out_msg_pos (0) , _agent_tokens (0) , _agent_timer (new AgentTimer()) - , _agent_caps_size(0) - , _agent_caps(NULL) + , _agent_caps_size(sizeof(default_agent_caps)/sizeof(default_agent_caps[0])) + , _agent_caps(default_agent_caps) , _migrate (*this) , _glz_window (0, _glz_debug) {
This won't work, _agent_caps is supposed to be a dynamically allocated array of uint32_t, and gets cleaned up with delete[], but now you'll end up passing delete[] the address of an array in the data segment, which is bad (as in it will crash bad). Regards, Hans _______________________________________________ Spice-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/spice-devel
